Skip to main content

What"s wrong with this PHP Regex code?



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?







<?php

// create a string

$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

";



// look for a match

if(preg_match($regex, $string))

{

echo 'Pattern Found';

}

else

{

echo 'Pattern not found';

}

?>




Comments

  1. 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

    ReplyDelete
  2. PHP gives you the reason for the error in the warning message: Unknown modifier ' '.

    Obviously you are not allowed to have white space in the modifier list after the ending delimiter / in your pattern. You can remove this white space with the trim() function:

    if (preg_match(trim($regex), $string))
    // ...

    ReplyDelete

Post a Comment

Popular posts from this blog

Slow Android emulator

I have a 2.67 GHz Celeron processor, 1.21 GB of RAM on a x86 Windows XP Professional machine. My understanding is that the Android emulator should start fairly quickly on such a machine, but for me it does not. I have followed all instructions in setting up the IDE, SDKs, JDKs and such and have had some success in staring the emulator quickly but is very particulary. How can I, if possible, fix this problem?