[英]Regular expression to exclude 2 words
我在JAVA中使用REGEX,我需要检查一个字符串是否在一个单词之前和之后都带有一个不带某些单词的单词。
我设法创建了一个正则表达式,将以下单词排除在外:
.*WORD(?! AFTER).*
使用此表达式,字符串“ bla bla WORD AFTER bla bla”将不匹配,但是字符串“ bla bla WORD bla bla bla”将匹配。
我也需要对前一个单词使用相同的行为。 例如,字符串“ bla bla bla bla之后的单词之后bla bla bla bla”不应该匹配,但是字符串“ bla bla WORD bla bla bla”应该匹配。
我尝试了这个:
.*(?!BEFORE )WORD(?! AFTER).*
尽管该表达式没有给出任何错误,但是它没有预期的行为。 相反,它的工作原理与第一个表达式完全相同(不带(?!BEFORE) )。 任何想法将不胜感激。
试试看(向后看是负数(请参见Java API文档,了解类Pattern
):
.*(?<!BEFORE )WORD(?! AFTER).*
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.