我想在Java中使用像这样的正则表达式:
[[=a=][=e=][=i=]]
,但Java不支持POSIX类[=a=], [=e=]等
。我该怎么做?更确切地说,有没有办法不使用US-ASCII?[[=a=][=e=][=i=]]
,但Java不支持POSIX类[=a=], [=e=]等
。我该怎么做?更确切地说,有没有办法不使用US-ASCII?引用自http://download.oracle.com/javase/1.6.0/docs/api/java/util/regex/Pattern.html
POSIX字符类(仅限US-ASCII)
\p{Lower} A lower-case alphabetic character: [a-z]
\p{Upper} An upper-case alphabetic character:[A-Z]
\p{ASCII} All ASCII:[\x00-\x7F]
\p{Alpha} An alphabetic character:[\p{Lower}\p{Upper}]
\p{Digit} A decimal digit: [0-9]
\p{Alnum} An alphanumeric character:[\p{Alpha}\p{Digit}]
\p{Punct} Punctuation: One of !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~
\p{Graph} A visible character: [\p{Alnum}\p{Punct}]
\p{Print} A printable character: [\p{Graph}\x20]
\p{Blank} A space or a tab: [ \t]
\p{Cntrl} A control character: [\x00-\x1F\x7F]
\p{XDigit} A hexadecimal digit: [0-9a-fA-F]
\p{Space} A whitespace character: [ \t\n\x0B\f\r]
引用自此处
Java不支持POSIX括号表达式,但使用\p运算符支持POSIX字符类。尽管\p语法借鉴了Unicode属性的语法,但Java中的POSIX类仅匹配如下所示的ASCII字符。类名区分大小写。与只能用于括号表达式内部的POSIX语法不同,Java的\p可以用于括号表达式内部和外部。