我正在尝试创建一个简单的正则表达式,在这里我需要捕获所有的Dogs事件,只要它前面没有其他单词Cats。下面是一些测试正则表达式的示例:
我正在尝试一个类似于此的正则表达式:
((?<!\bCats\b)\s*\bDogs\b)这不能给出正确的结果(它匹配所有的情况,当它不应该匹配第三种情况)
另外,如果我使用类似的东西:
((?<!\bCats\b)\s+\bDogs\b)它返回案例1和3的正确结果,但与案例2不匹配,因为Dogs是在开头找到的,并且前面没有空格。
在这里,区分大小写不是一个问题。我正在使用Java来测试这个正则表达式
发布于 2020-08-10 17:34:38
如果我清楚地理解了您的需求,那么您可以使用这个正则表达式进行负前瞻性,而不是向后看:
^(?!.*\bCats\s+Dogs\b).*?\bDogs\bRegEx详细信息:
^:开始(?!.*\bCats\s+Dogs\b):如果我们发现单词Cats后面跟着1+空格,然后是word Dogs anywhere,则会导致匹配失败。.*?\bDogs\b:在0或多个字符后匹配单词Dogs发布于 2020-08-10 17:04:50
你离解决方案很近。我认为这个准则应该有效:
(?<!Cats)\s+Dogs|^.{0,4}Dogshttps://stackoverflow.com/questions/63344485
复制相似问题