我想定义正则表达式来检测文本中的单词wariant
。问题是我在单词wariant
之前或之后都没有字母。
我做到了:
Pattern wariantPattern = Pattern.compile("[\\w]{0}wariant[\\w]{0}");
但遗憾的是:subwariant
也与之匹配。
答案 0 :(得分:3)
您可以使用单词anchor \b
:
Pattern wariantPattern = Pattern.compile("\\bwariant\\b");
与所有锚一样,它将匹配输入文本中的位置(即,它不会消耗文本),其中一个是真的:
某些正则表达式引擎具有更专业的锚点({1}用于条件1和3,\<
用于条件2和4),但不包括Java。
答案 1 :(得分:2)
您可以使用字边界\b
:
Pattern wariantPattern = Pattern.compile("\\bwariant\\b");