Java 单词“前无字母”;“瓦里安”;正则表达式
我想定义正则表达式来检测文本中的单词Java 单词“前无字母”;“瓦里安”;正则表达式,java,regex,Java,Regex,我想定义正则表达式来检测文本中的单词wariant。问题是我不希望在wordwariant之前或之后有字母 我已经做到了: Pattern wariantPattern = Pattern.compile("[\\w]{0}wariant[\\w]{0}"); 但不幸的是,word:subwariant也与之匹配。您可以使用word boundary\b: Pattern wariantPattern = Pattern.compile("\\bwariant\\b"); Pattern w
wariant
。问题是我不希望在wordwariant
之前或之后有字母
我已经做到了:
Pattern wariantPattern = Pattern.compile("[\\w]{0}wariant[\\w]{0}");
但不幸的是,word:
subwariant
也与之匹配。您可以使用word boundary\b
:
Pattern wariantPattern = Pattern.compile("\\bwariant\\b");
Pattern wariantPattern = Pattern.compile("\\bwariant\\b");
您可以使用单词边界
\b
:
Pattern wariantPattern = Pattern.compile("\\bwariant\\b");
Pattern wariantPattern = Pattern.compile("\\bwariant\\b");
您可以使用单词anchor
\b
:
Pattern wariantPattern = Pattern.compile("\\bwariant\\b");
Pattern wariantPattern = Pattern.compile("\\bwariant\\b");
与所有锚定一样,它将匹配输入文本中的一个位置(即,它不会使用文本),其中一个为真:
一些正则表达式引擎甚至有更专门的锚(
\
用于条件2和4),但没有Java。您可以使用单词anchor\b
:
Pattern wariantPattern = Pattern.compile("\\bwariant\\b");
Pattern wariantPattern = Pattern.compile("\\bwariant\\b");
与所有锚定一样,它将匹配输入文本中的一个位置(即,它不会使用文本),其中一个为真:
一些正则表达式引擎甚至有更专门的锚(
\
用于条件2和4),但没有Java。使用锚这个词(\b
)--当然,在Java中要加倍反斜杠string@fge回答这个问题,我会投赞成票。用anchor这个词(\b
)--当然,在Java中将反斜杠加倍string@fge回答这个问题,我会投赞成票。