[英]POSIX character equivalents in Java regular expressions
我想在 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.htmlA822C7A53EZ
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 字符,如下所示。 class 名稱區分大小寫。 與只能在括號表達式內部使用的 POSIX 語法不同,Java 的 \p 可以在括號表達式內部和外部使用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.