正则表达式 - 在特定单词之后的一组重复单词中查找第一个单词



我有一个字符串"Foo Bar Foo Bar",我想选择该字符串中的第一个柱

目前我有:http://regexr.com?37mv1 不太对

这是我在Foo Bar吃过的第一个Foo'酒吧','酒吧'应该被拿起.....希望这是有道理的

你可以使用这个:

^.*?Foos*(Bar)

或更简单:

^.*?(Bar)

或更高效(使用长字符串):

^(?>[^F]++|F(?!oo))*Foos*(Bar)

你的模式问题是第一个贪婪量词.*。这个子模式将匹配所有可能的字符,直到字符串/行的末尾,然后正则表达式引擎必须逐个字符返回,直到找到Foo,但它找到的Foo是最后一个。

一个惰性量词.*?将检查每个字符(如果后面Foo

注意:您可以在 gskinner 中取消选中ig复选框。

最新更新