使用右括号使正则表达式工作

时间:2016-03-28 16:00:39

标签: php regex

我有以下正则表达式:

$regex = '/(?:(?:\b(?:pp|[Ww]ars|[\.!?)]?\s*f|vs)[\.!?)]\s))\Z/mu';

符合:

$string = 'Wars! ';

但我希望它符合以下情况:

$string = 'Wars!) ';

我在那里添加了右括号,但显然我做错了。

1 个答案:

答案 0 :(得分:1)

您可以将*量词添加到上一个[.!?)]以匹配零或更多出现次数

(?:(?:\b(?:pp|[Ww]ars|[.!?)]?\s*f|vs)[.!?)]*\s))\Z
                                           ^

请参阅the regex demo

另请注意,字符类中的.不必转义为与文字点符号匹配。