我想在Java中使用像这样的正则表达式:[[=a=][=e=][=i=]]
。
Java正则表达式中的POSIX字符等效项
但是Java不支持POSIX类[=a=], [=e=] etc
。
我该怎么做?更确切地说,有没有办法不使用US-ASCII?
我想在Java中使用像这样的正则表达式:[[=a=][=e=][=i=]]
。
Java正则表达式中的POSIX字符等效项
但是Java不支持POSIX类[=a=], [=e=] etc
。
我该怎么做?更确切地说,有没有办法不使用US-ASCII?
的Java不支持posix character classes。语法不同,例如:
\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}
US ASCII只要。有没有办法使用一些地区? – Stephan
@Stephan,不幸的是我没有办法知道。您始终可以手动匹配[unicode characters](http://stackoverflow.com/questions/917774/java-regex-support-for-non-ascii-values),但要创建自己的字符组。 –
从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 !"#$%&'()*+,-./:;<=>[email protected][\]^_`{|}~
\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]
哈,我喜欢我们如何引用地方。 –
大声笑,没有办法使用另一套,而不是只使用US-ASCII? – Stephan
我认为POSIX也只允许ASCII,我错了吗?这对于希望posix处理unicode的用户来说肯定是一个便笺。 –
请不要将第三方统计跟踪器添加到您的帖子。谢谢。 –