我想在Java中使用这样的正则表达式:[[=a=][=e=][=i=]]
.
但是Java不支持POSIX类[=a=], [=e=] etc
。
我该怎么做?更准确地说,有没有办法不使用US-ASCII?
Java支持posix字符类。语法只是不同,例如:
p{Lower}
p{Upper}
p{ASCII}
p{Alpha}
p{Digit}
p{Alnum}
p{Punct}
p{Graph}
p{Print}
p{Blank}
p{Cntrl}
p{XDigit}
p{Space}
引自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-x1Fx7F]
p{XDigit} A hexadecimal digit: [0-9a-fA-F]
p{Space} A whitespace character: [ tnx0Bfr]
从这里复制
Java不支持POSIX括号表达式,但不支持POSIX字符类使用p操作符。尽管p语法是借用了Unicode的语法属性,Java中的POSIX类只匹配ASCII字符为下面的指示。类名如下大小写敏感的。不像POSIX语法,该语法只能在括号表达式,Java的p可以是用于支架内外表达式。