164 因此,对于Java中的正则表达式,我想编写一个正则表达式,当且仅当模式前面没有某些字符时才匹配。例如: String s = "foobar barbar beachbar crowbar bar "; 如果bar不以foo开头,我想匹配。因此输出将是: barbar beachbar crowbar bar 我知道这可能是一个非常简单的问题。我正在尝试学习正则表达式,但与此同时我现在需要一些工作。 java regex — b3bop source
277 您想这样使用negative lookbehind: \w*(?<!foo)bar 其中的(?<!x)意思是“仅在此点之前没有“ x”。 有关更多信息,请参见正则表达式-环顾四周。 编辑:添加\w*来捕获之前的字符(例如“海滩”)。 — 亚当·罗弗 source 2 需要进行哪些修改才能不匹配foo_arbitrary_bar?即foo不在紧接杠前 — Brad Kent 1 (?<!foo).*bar我相信@BradKent 会匹配类似的东西。 — emyller @emyller不。会匹配foobazbar(foo不在foobazbar之前,因此匹配) — Brad Kent 2 @BradKent我没有在“不匹配”中读到您的“不”,这就是为什么我说它将匹配。那你的情况\b(?!foo)\w*bar\b对我来说就像一个。 — emyller '18 4 @BradKent然后,您可以提出一个新问题,详细说明您要实现的目标,或者继续使用正则表达式,直到您自己找到它为止。:) — emyller '18