Perl Unicode 美食大全:在正则表达式中匹配 Unicode 图形簇
℞ 29:在正则表达式中匹配 Unicode 图形簇
在 ASCII 时代,我们谈论的是字符和字节。它们之间的区别不大。在 Unicode 世界中,字符远不止七位数据。最好谈论原始字节和字符的集合——甚至 Unicode 码点。
程序员可见的“字符”是由 /./s
匹配的码点,但用户可见的“字符”是由 /\X/
匹配的图形。
也就是说,正则表达式中的 \X
元字符匹配 Unicode 所称的“扩展图形簇”。在用户可能看到一个单独字符(如带重音的辅音)的地方,Unicode 的表示可能是该辅音加上组合字符加上重音符号。使用 \X
来匹配整个序列。
# Find vowel *plus* any combining diacritics,underlining,etc.
my $nfd = NFD($orig);
$nfd =~ / (?=[aeiou]) \X /xi
系列索引:标准序言
标签
反馈
这篇文章有问题吗?请通过在 GitHub 上打开一个问题或拉取请求来帮助我们。