0
我想定义正则表达式来检测文本中的单词wariant
。问题是我在字wariant
之前或之后不需要任何字母。正则表达式中的单词“wariant”之前没有字母
我已经做到了:
Pattern wariantPattern = Pattern.compile("[\\w]{0}wariant[\\w]{0}");
但不幸的是两个字:subwariant
也与它匹配。
我想定义正则表达式来检测文本中的单词wariant
。问题是我在字wariant
之前或之后不需要任何字母。正则表达式中的单词“wariant”之前没有字母
我已经做到了:
Pattern wariantPattern = Pattern.compile("[\\w]{0}wariant[\\w]{0}");
但不幸的是两个字:subwariant
也与它匹配。
您可以使用单词边界\b
:
Pattern wariantPattern = Pattern.compile("\\bwariant\\b");
你可以用这个词锚\b
:
Pattern wariantPattern = Pattern.compile("\\bwariant\\b");
像所有的锚,它将匹配在输入文本位置(即,它不会消耗文本)其中之一是真的:
一些正则表达式引擎有更专业的锚(\<
为条件1和3,\>
为条件2和4),而不是Java。
使用单词锚('\ b') - 当然,在Java字符串中加上反斜杠 – fge
@fge让这个答案,我会upvote它。 –