我有一些字符串可以检查Regex模式。这是正则表达式:
apple(?!( ?not)).*?inc(\.|luded)?
字符串1:“香蕉,不包括烂苹果” - 不给我一个匹配,这就是我想要的。
字符串2:“香蕉,包括腐烂的苹果” - 产生一个我想要的匹配
但如果我有一个像......这样的字符串。
“香蕉,腐烂的苹果,不包括成熟的鳄梨”或 “不包括香蕉,腐烂的苹果和杏子”都会产生一种我不想要的比赛。
所以基本上,我想看看“apple”和“included”(或“inc”或“inc。”)是否在字符串中并且“not”之前没有“not”并忽略其中的所有其他内容。
谢谢!
答案 0 :(得分:2)
怎么样:
apple.*(?<!\snot)\s+inc(\.|luded)
答案 1 :(得分:1)
你正在使用负向前瞻断言来验证“不是”在“苹果”之后不会出现。但是,如果我理解正确,你想要的是检查“inc”不会立即在之前由“not”。您可以使用负面的lookbehind断言,如下所示:
apple.*(?<!(\bnot ))inc(\.|luded)?