页面perlunicode
文件可用的unicode字符类。我发现它是perlrebackslash中的一个参考,它在正则表达式中记录特殊字符类和反斜杠序列,如\p{...}
。
总结是,除最常见的属性类别外,所有属性都需要属性类型和属性值,它们之间用:
或=
分隔。但是,似乎没有提及全角字符作为预定义的属性。
但存在Block
/Blk
属性,它可以有Halfwidth and Fullwidth Forms
(U+FF00
- U+FFEF
)的值:
/\p{Block=Halfwidth and Fullwidth Forms}/
这将匹配您的输入(上v16.3测试)。
一个有用的工具是uniprops
。
$ uniprops U+FF41
U+FF41 ‹a› \N{FULLWIDTH LATIN SMALL LETTER A}
\w \pL \p{LC} \p{L_} \p{L&} \p{Ll}
All Any Alnum Alpha Alphabetic Assigned InHalfwidthAndFullwidthForms
Cased Cased_Letter LC Changes_When_Casemapped CWCM
Changes_When_NFKC_Casefolded CWKCF Changes_When_Titlecased CWT
Changes_When_Uppercased CWU Ll L Gr_Base Grapheme_Base Graph GrBase
Halfwidth_And_Fullwidth_Forms Hex XDigit Hex_Digit ID_Continue IDC
ID_Start IDS Letter L_ Latin Latn Lowercase_Letter Lower Lowercase
Print Word XID_Continue XIDC XID_Start XIDS X_POSIX_Alnum
X_POSIX_Alpha X_POSIX_Graph X_POSIX_Lower X_POSIX_Print X_POSIX_Word
X_POSIX_XDigit
正如你所看到的,\p{Block=Halfwidth and Fullwidth Forms}
也可以写\p{In Halfwidth and Fullwidth Forms}
。
非常感谢@ikegami的启发编辑和娱乐模块它挂。 – amon 2013-05-09 23:26:09
这是tchrist的。 “unichars”可以用来做相反的事情。例如'unichars -au'\ p {InHalfwidthAndFullwidthForms}'列出了HalfwidthAndFullwidthForms块中的字符。 – ikegami 2013-05-09 23:36:30