使用PHP和REGEX查找文字字符串

时间:2013-02-17 08:07:30

标签: php regex

这是我第一次将REGEX与preg_match一起使用,而且我对REGEX一点也不熟悉。所以我试图在输入中找到字符串(不区分大小写)def,后跟一个字符串。我正在使用的正则表达式是:(?-i)def?\.

我收到以下错误:Warning: preg_match(): Unknown modifier 'd' in /var/www/process.php on line 11

输入时:asdsa saj dasjdkj def ddas

与任何其他输入相同的错误。

那么我在这里搞砸了什么?有一些简单的解决方法吗?

对不起,如果这看起来很傻,但我在这个PHP领域是个小妞。

1 个答案:

答案 0 :(得分:2)

您必须使用delimiting character作为正则表达式。这是正则表达式中的第一个字符,必须是非字母数字(非空格,非反斜杠)字符。因此,正则表达式解析器在您的示例中将(作为分隔符(括号样式),并认为d是结束括号之后的修饰符,由于它不存在而无法识别。

更好的正则表达式是:

/def/i

匹配字符串中的“def”。您想要与(?-i)部分匹配什么? def之后是.吗? f是可选的吗?这就是您目前正在使用示例正则表达式告诉正则表达式引擎。

编辑: 在开头匹配“是”或“意志”后跟一个空格:

/^(Was|Will) /i