Java 正则表达式,用于匹配前面没有其他内容的内容
因此,对于java中的正则表达式,我想编写一个正则表达式,当且仅当模式前面没有特定字符时才匹配。例如:Java 正则表达式,用于匹配前面没有其他内容的内容,java,regex,Java,Regex,因此,对于java中的正则表达式,我想编写一个正则表达式,当且仅当模式前面没有特定字符时才匹配。例如: String s = "foobar barbar beachbar crowbar bar "; 如果bar前面没有foo,我想匹配。因此,产出将是: barbar beachbar crowbar bar 我知道这可能是一个非常简单的问题。我正在尝试学习正则表达式,但与此同时,我现在需要一些东西来工作。您想像这样使用负回溯: \w*(?<!foo)bar \w*(? 其中,(?
String s = "foobar barbar beachbar crowbar bar ";
如果bar前面没有foo,我想匹配。因此,产出将是:
barbar
beachbar
crowbar
bar
我知道这可能是一个非常简单的问题。我正在尝试学习正则表达式,但与此同时,我现在需要一些东西来工作。您想像这样使用
负回溯
:
\w*(?<!foo)bar
\w*(?
其中,(?表示“仅当在此点之前没有“x”时”
有关更多信息,请参阅
编辑:添加了\w*
以捕获前面的字符(例如“beach”)。另一个选项是首先匹配可选单词字符,然后再匹配条
,当匹配后,检查直接位于左侧的不是foobar
lookbehind断言将在首先匹配bar
之后运行
\w*bar(?<!foobar)
\w*条(?)?
\w*
匹配0个以上的单词字符
bar
按字面匹配
(?反向查找,从当前位置断言foobar
不直接位于左侧
需要进行哪些修改才能与foo\u任意\u条不匹配?即foo不在前面bar@BradKent(?我相信会匹配那样的东西。@emyller不。那会匹配foobazbar(foo不在foobazbar之前,所以它匹配)@BradKent我没有在“不匹配”中读到你的“不”,这就是我说它会匹配的原因。你的案例对我来说就像一个\b(?!foo)\w*bar\b
。@BradKent然后你可以问一个新问题,详细说明你试图实现的目标,或者继续玩正则表达式,直到你自己找到它为止。:)