PHP

  minte9
REMEMBERS




Last update:   20-02-2022

Delimiters

Any character can be used as a delimiter. Every metacharacter represents a single character in the matched expression.
 
echo preg_match("/[a-z]/", "abcde"); // common delimiter
echo preg_match("&[a-z&]&", "abcde"); // escaped delimiter
 
echo preg_match("/./", "abc"); // true
    // match any character

echo preg_match("/^bc/", "abc"); // false
    // match start of the string, then match b, match c

echo preg_match("/c$/", "abc"); // 1
    // c, end of the string

Multiple

You can perform multiple matches on a given string using preg_match_all()
 
$matches = array();

if (preg_match_all("/([abc])\d/", "a1bb b2cc c3dd", $matches)) {
    var_dump($matches);
        // [0] => a1, b2, c3
        // [1] => a, b, c
}

Replace

You can replace text that matches a pattern. It is even possible to reuse captured subpatterns directly in the substitution string.
 
echo preg_replace("/a/", "x", "abc"); // xbc
echo preg_replace("/a{2}/", "x", "abaac"); // abxc
 
$str = "XabcX";
$pattern = "/X(.*)X/";

preg_match($pattern, $str, $matches);
var_dump($matches); //[1] => "abc"

$replace = preg_replace($pattern, "Y $1 Y", $str);
echo $replace; // Y abc Y
We can also pass in an array of subjects. Regular expression (or expressions) are compiled once and reused multiple times.
 
$array = array("[b]abc[/b]", "[i]abc[/i]");

$result = preg_replace(
    <span class='keyword_code'>array</span>(
        "|[b](.*)[/b]|", 
        "|[i](.*)[/i]|",
    ), 
    array(
        "<b>$1</b>",
        "<i>$1</i>",
    ), 
    $array
);

print_r($array); // [0] => [b]abc[/b] [1] => [i]abc[/i]
print_r($result); // [0] => <b>abc</b> [1] => <i>abc</i>

Questions    
String parse
        A B C D E F
🔔
1/2