1

为什么不an?|the工作?我正在使用 PHP 的 preg_match()。

这是完整的正则表达式:"/^an?|the (.+?) (is|was) an? (.+?)$/".

我希望它匹配"the mona lisa is a painting""a dog is an animal".

|the在我添加以适应第一个字符串示例之前,它工作正常。

谢谢!

4

1 回答 1

3

你写它的方式要么匹配使用

^an?

或者

the (.+?) (is|was) an? (.+?)$

这显然不是你想要的。你必须按照你的方式把它放在括号中is|was

/^(an?|the) (.+?) (is|was) an? (.+?)$/

要防止组包含在结果中,请使用语法为 的不匹配组(?: )。所以只需像这样使用它:

/^(?:an?|the) (.+?) (is|was) an? (.+?)$/
于 2012-07-03T08:53:41.560 回答