Search code examples
phpregexmodifier

Can PHP regex patterns contain trailing whitespace after the ending delimiter?


The x modifier code in this tutorial Php regex tutorial gives me the following error:

Warning: preg_match() [function.preg-match]: Unknown modifier ' ' in C:\xampp\htdocs\validation\test.php on line 16
Pattern not found 

What's wrong with it?

$string = 'sex'."\n".'at'."\n".'noon'."\n".'taxes'."\n";

// create our regex using comments and store the regex
// in a variable to be used with preg_match
$regex ="
/     # opening double quote
^     # caret means beginning of the string
noon  # the pattern to match
/imx
";

if (preg_match($regex, $string)) {
    echo 'Pattern Found';
} else {
    echo 'Pattern not found';
}

Solution

  • You have an extra newline in the modifiers because the terminating quote is on a new line after imx, that is why you are seeing unknown modifier ' '

    Try changing it to this:

    $regex ="
    /     # opening double quote
    ^     # caret means beginning of the string
    noon  # the pattern to match
    /imx";  // move "; to same line as /imx