如果找到几个选项,则正则表达式匹配,但实际上没有其他选项



我将如何构建一个正则表达式,如果"foo"和"bar"(或其任何组合(存在但没有其他任何东西,它将匹配?

所以例如:

">Foo bar ipsum dolor sit amet, consectetur adipiscing elit" - NO MATCH

"Ipsum dolor sit amet, consectetur adipiscing elit foo" - NO MATCH

">Foo ipsum dolor sit amet, bar consectetur adipiscing elit foo" - NO MATCH

"噗" - 匹配

"酒吧" - 匹配

"巴福" - 匹配

"foobarbarfoofoobar" - 匹配

我试图摸索负面的展望,但我还没有能够破解这个。

如果您需要 foobar 的任意组合,那么这样的东西就足够了:

^(foo|bar)+$

实时预览

它会捕获foobarfoobarbarfoofoo甚至foobarbarfoofoobar等。

编辑:

由于您还想匹配foo bar,因此您必须包含h 。请记住,h匹配空格和制表符,而s也匹配新行。

^((?:foo|bar)h*)+$

实时预览

您可以使用此正则表达式:

^h*(?:(?:foo|bar)h*)+$

正则表达式演示

如果你还需要匹配空格字符,你可以使用类似的东西

^(foo|bar)+(foo|bar|s)*$

这是一个幼稚的解决方案,因为显示捕获组已经显示为答案的解决方案。

相关内容

最新更新