该页面perlunicode
记录了可用的 unicode 字符类。我在 perlrebackslash 中找到了它作为参考,它记录了特殊字符类和反斜杠序列,如正则\p{...}
表达式。
总结是除了最常见的属性类之外,所有属性类都需要属性类型和属性值,它们之间用:
or分隔=
。但是,似乎没有提到全角字符作为预定义属性。
但是有Block
/Blk
属性,它可以具有Halfwidth and Fullwidth Forms
( U+FF00
-<code>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}
。