0

这是我第一次将 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 领域的小鸡。

4

1 回答 1

2

您必须为您的正则表达式使用分隔符。这是正则表达式中的第一个字符,并且必须是非字母数字(非空白、非反斜杠)字符。因此,正则表达式解析器(在您的示例中将其作为定界字符(括号样式),并认为 d 是右括号之后的修饰符,因为它不存在,所以它无法识别。

更好的正则表达式是:

/def/i

这将匹配字符串中的“def”。你想和这个(?-i)部分匹配什么?必须def跟一个.? 是f可选的吗?这就是您当前使用示例正则表达式告诉正则表达式引擎的内容。

编辑:在开头匹配“Was”或“Will”,后跟一个空格:

/^(Was|Will) /i
于 2013-02-17T08:15:07.537 回答