如果" foo"和" bar" (或其任何组合)如果存在但是没有?是
例如:
" foo bar ipsum dolor sit amet,consectetur adipiscing elit" - 没有比赛
" ipsum dolor sit amet,consectetur adipiscing elit foo " - 没有比赛
" foo ipsum dolor sit amet, bar consectetur adipiscing elit foo " - 没有比赛
"富" - 比赛
"杆" - 比赛
" barfoo" - 比赛
" foobarbarfoofoobar" - 比赛
我试图克服负面的前瞻,但我还没有能够解决这个问题。
答案 0 :(得分:1)
如果您需要foo
和bar
的任意组合,那么这样就足够了:
^(foo|bar)+$
它会捕获foo
,bar
,foobar
,barfoofoo
甚至foobarbarfoofoobar
等。
修改强>
由于您还希望匹配foo bar
,因此您必须包含\h
。请注意,\h
匹配空格和制表符,而\s
也匹配新行。
^((?:foo|bar)\h*)+$
答案 1 :(得分:1)
如果您还需要匹配空格字符,您可以使用
之类的内容^(foo|bar)+(foo|bar|\s)*$
这是一个天真的解决方案,因为显示捕获组已经显示为答案。
答案 2 :(得分:1)