2012-02-16 84 views
70

所以在java中的正则表达式,我想写一个匹配的正则表达式,当且仅当该模式没有被某些字符前缀匹配时。例如:正则表达式匹配的东西,如果它没有前面有其他东西

String s = "foobar barbar beachbar crowbar bar "; 

我想匹配,如果巴不富之前。所以输出将是:

barbar 
beachbar 
crowbar 
bar 

我知道这可能是一个非常简单的问题。我正在尝试学习正则表达式,但是现在我需要一些东西来工作。

+2

你的问题不太清楚。想要匹配iff你的整个字符串或每个单词(用空格分隔)是否没有被特定的charachters? – 2012-02-16 05:55:39

回答

125

你想用negative lookbehind这样的:

\w*(?<!foo)bar 

(?<!x)手段“只有当它没有‘X’这个点之前”。

有关更多信息,请参见Regular Expressions - Lookaround

编辑:添加了\w*以捕获之前的字符(例如“海滩”)。

相关问题