我正在寻找一个正则表达式来匹配确切的单词和短语,即使它们相交
例如,我有这一行
“黑马以其黑色等着称......”
我输入了要匹配和替换的单词列表:“黑色”,“黄色”,“黑马”......等等
正则表达式应该匹配 “黑色”中的“黑色” 和“黑马”中的“黑马” 但不是“黑马”中的“黑色”
如何阻止“黑色”匹配“黑马”?
我正在使用java代码
String regex="\\b" + word + "\\b";
Pattern pattern = Pattern.compile(regex, Pattern.CASE_INSENSITIVE);
Matcher matcher = pattern.matcher(article);
答案 0 :(得分:1)
您可以使用negative lookahead
:
Pattern pattern = Pattern.compile("\\bblack (?!horse\\b)", Pattern.CASE_INSENSITIVE);
这将匹配black
之后没有的horse
。
答案 1 :(得分:0)
您也可以尝试使用此表达式(?!black horse)black