我将如何构建一个正则表达式,如果"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" - 匹配
我试图摸索负面的展望,但我还没有能够破解这个。
如果您需要 foo
和 bar
的任意组合,那么这样的东西就足够了:
^(foo|bar)+$
实时预览
它会捕获foo
、bar
、foobar
、barfoofoo
甚至foobarbarfoofoobar
等。
编辑:
由于您还想匹配foo bar
,因此您必须包含h
。请记住,h
匹配空格和制表符,而s
也匹配新行。
^((?:foo|bar)h*)+$
实时预览
您可以使用此正则表达式:
^h*(?:(?:foo|bar)h*)+$
正则表达式演示
如果你还需要匹配空格字符,你可以使用类似的东西
^(foo|bar)+(foo|bar|s)*$
这是一个幼稚的解决方案,因为显示捕获组已经显示为答案的解决方案。