2015-07-11 41 views

回答

3

添加一个可选\s\s*之前的模式,并使其重复一次或多次。

\b(?:\s?(?:cat|dog|mouse|fish))+ 

[cat|dog|mouse|fish]是匹配字符的组的错误的方法。您需要将这些子字符串放入组中,而不是放在字符类中。

DEMO

OR

(?<nnn>\b(?:cat|dog|mouse|fish)(?:\s+(?:cat|dog|mouse|fish)\b)*) 

DEMO

+0

或'\ B(:??\ S(?:猫|狗|鼠标|鱼))+ \ B' –

+0

最初,看起来正是我需要的。 2问题:我添加了命名捕获,直到我添加了命名捕获,然后它似乎只得到最后一个。还捕捉不需要的领先空间。 [DEMO](https://regex101.com/r/rJ4hV3/3) – cycle4passion

+0

能够使用[DEMO](https://regex101.com/r/rJ4hV3/5)修复命名组,现在只需要如何不包括领导空间 – cycle4passion