Java 正则表达式的全面解析与应用
1. Java 对 Unicode 属性和块的支持
1.1 Unicode 属性
- 引用方式 :通过短名称引用 Unicode 属性,如
\p{Lu}
。单字母属性名可省略花括号,如\pL
等同于\p{L}
,但不支持长名称,如\p{LowercaseRLetter}
。 - 版本差异 :Java 1.5 及更早版本不支持
Pi
和Pf
属性,\p{P}
无法匹配具有这些属性的字符(Java 1.6 支持)。 - 特殊属性 :
\p{C}
不匹配\p{Cn}
所匹配的代码点,不支持\p{L&}
复合属性。支持伪属性\p{all}
,等同于(?s:.)
,不支持\p{assigned}
和\p{unassigned}
伪属性,可用\P{Cn}
和\p{Cn}
替代。
1.2 Unicode 块
- 前缀要求