我正在使用此模式检查字符串是否在冒号前面至少以2个字母字符开头:
string.matches("^\\p{IsAlphabetic}{2,}:")
但是我遇到了以下异常:
java.util.regex.PatternSyntaxException: Unknown character property name {Alphabetic} near index 16
^\p{IsAlphabetic}{2,}:
^
at java.util.regex.Pattern.error(Pattern.java:1730)
at java.util.regex.Pattern.charPropertyNodeFor(Pattern.java:2454)
at java.util.regex.Pattern.family(Pattern.java:2429)
at java.util.regex.Pattern.sequence(Pattern.java:1848)
at java.util.regex.Pattern.expr(Pattern.java:1769)
at java.util.regex.Pattern.compile(Pattern.java:1477)
at java.util.regex.Pattern.(Pattern.java:1150)
at java.util.regex.Pattern.compile(Pattern.java:840)
at java.util.regex.Pattern.matches(Pattern.java:945)
at java.lang.String.matches(String.java:2102)
即使Pattern类的规范指出:
与IsAlphabetic中一样,二进制属性以前缀Is指定。Pattern支持的二进制属性是
字母顺序
表意文字
信
…
以及 Unicode脚本,块,类别和二进制属性 列表的类部分
\p{IsAlphabetic} An alphabetic character (binary property)