Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
为什么不an?|the工作?我正在使用 PHP 的 preg_match()。
an?|the
这是完整的正则表达式:"/^an?|the (.+?) (is|was) an? (.+?)$/".
"/^an?|the (.+?) (is|was) an? (.+?)$/"
我希望它匹配"the mona lisa is a painting"和"a dog is an animal".
"the mona lisa is a painting"
"a dog is an animal"
|the在我添加以适应第一个字符串示例之前,它工作正常。
|the
谢谢!
你写它的方式要么匹配使用
^an?
或者
the (.+?) (is|was) an? (.+?)$
这显然不是你想要的。你必须按照你的方式把它放在括号中is|was:
is|was
/^(an?|the) (.+?) (is|was) an? (.+?)$/
要防止组包含在结果中,请使用语法为 的不匹配组(?: )。所以只需像这样使用它:
(?: )
/^(?:an?|the) (.+?) (is|was) an? (.+?)$/