正则表达式匹配单词和短语

时间:2014-05-09 11:01:06

标签: java regex

我正在寻找一个正则表达式来匹配确切的单词和短语,即使它们相交

例如,我有这一行

“黑马以其黑色等着称......”

我输入了要匹配和替换的单词列表:“黑色”,“黄色”,“黑马”......等等

正则表达式应该匹配 “黑色”中的“黑色”  和“黑马”中的“黑马” 但不是“黑马”中的“黑色”

如何阻止“黑色”匹配“黑马”?

我正在使用java代码

String regex="\\b" + word + "\\b";
Pattern pattern = Pattern.compile(regex, Pattern.CASE_INSENSITIVE);
Matcher matcher = pattern.matcher(article);

2 个答案:

答案 0 :(得分:1)

您可以使用negative lookahead

Pattern pattern = Pattern.compile("\\bblack (?!horse\\b)", Pattern.CASE_INSENSITIVE);

这将匹配black之后没有的horse

Working Demo

答案 1 :(得分:0)

您也可以尝试使用此表达式(?!black horse)black