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它。 –