如何检查字符是否是非字边界

mic*_*ael 2 java regex

在Java正则表达式中,它具有"\ B"作为非单词边界.

http://java.sun.com/j2se/1.4.2/docs/api/java/util/regex/Pattern.html

如果我有'char',我怎么检查它是非字边界?

谢谢.

Bal*_*usC 7

边界具有特殊意义.它实际上是一个零长度匹配,因此不能匹配单个字符.它用于确定非单词char和word-char之间的位置.另见http://regular-expressions.info/wordboundaries.html.

然而,我理解这个问题更多的是给定的char是否可能表示单词边界的开始或结束.从您链接的javadoc(是最新版本):

预定义的字符类

. 任何字符(可能与行终止符匹配也可能不匹配)
\d 数字:[0-9]
\D 非数字:[^0-9]
\s 空白字符:[ \t\n\x0B\f\r]
\S 非空白字符:[^\s]
\w 单词字符:[a-zA-Z_0-9]
\W 非单词字符:[^\w]

所以,一个单词字符匹配\w.非单词字符匹配\W.所以:

String string = String.valueOf(yourChar);
boolean nonWordCharacter = string.matches("\\W");
Run Code Online (Sandbox Code Playgroud)

  • 注意:这不会告诉你它是否是一个边界,只是它是一个非单词char.边界的概念与有序集合相关,并且不能合理地应用于单个字符. (3认同)