本教程Php regex tutorial中的x修饰符代码给出了以下错误:
Warning: preg_match() [function.preg-match]: Unknown modifier ' ' in C:\xampp\htdocs\validation\test.php on line 16 Pattern not found
它出了什么问题?
<?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';
}
?>
答案 0 :(得分:2)
修饰符中有一个额外的换行符,因为终止引号位于imx
之后的新行上,这就是您看到未知修饰符' '
尝试将其更改为:
$regex ="
/ # opening double quote
^ # caret means beginning of the string
noon # the pattern to match
/imx"; // move "; to same line as /imx
答案 1 :(得分:1)
PHP会在警告消息中显示错误原因:未知修饰符' '
。
显然,在模式中的结束分隔符/
之后,不允许在修饰符列表中包含空格。您可以使用trim()
功能删除此空白区域:
if (preg_match(trim($regex), $string))
// ...