我有一个字符串"Foo Bar Foo Bar"
,我想选择该字符串中的第一个柱
目前我有:http://regexr.com?37mv1 不太对
这是我在Foo Bar吃过的第一个Foo'酒吧','酒吧'应该被拿起.....希望这是有道理的
你可以使用这个:
^.*?Foos*(Bar)
或更简单:
^.*?(Bar)
或更高效(使用长字符串):
^(?>[^F]++|F(?!oo))*Foos*(Bar)
你的模式问题是第一个贪婪量词.*
。这个子模式将匹配所有可能的字符,直到字符串/行的末尾,然后正则表达式引擎必须逐个字符返回,直到找到Foo
,但它找到的Foo
是最后一个。
一个惰性量词.*?
将检查每个字符(如果后面Foo
。
注意:您可以在 gskinner 中取消选中i
和g
复选框。