PROGRAMMING

  minte9
learningjourney




R Q

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
 
$str = '
    PHP allowed variable names: $a, $_b, $a10, $A, $_ 
    PHP not allowed: $1, $-'
;

$flag = preg_match('/[$][a-zA-Z_][A-Za-z_0-9]*/', $str};

var_dump($flag); // int 1

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(
    array(
        "|[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>

Search array

Search in an array with regex.
 
$haystack = array (
    'say hello',
    'hello minte9',
    'hello world',
    'foo bar bas'
);

$matches  = preg_grep ('/^hello (\w+)/', $haystack);

var_dump($matches);
    //Array ( [1] => hello minte9 [2] => hello world )

Questions    
Last update: 60 days ago
String, String Parse