You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Perl 6字符匹配的Unicode属性及全属性获取方法问询

关于Perl 6字符的Unicode属性查询问题

首先,单个Perl 6字符能够匹配的Unicode属性涵盖多个大类,主要包括这些:

  • 通用类别:也就是.uniprop默认返回的基础分类,比如Letter、Lowercase_Letter、Number这类
  • 派生属性:像你提到的ID_Start、ID_Continue,还有White_Space、Alphabetic、Dash这类从基础属性推导而来的属性
  • 脚本属性:标识字符所属的书写脚本,比如Latin、Han、Arabic
  • 区块属性:字符所在的Unicode区块,比如Basic Latin、CJK Unified Ideographs
  • 特殊功能属性:比如Quotation_Mark、Math_Symbol这类功能性分类

你说.uniprop仅返回通用类别,其实是没用到它的复数版本——.uniprops方法!这个方法专门用来返回字符的所有Unicode属性列表,完全能满足你获取包括派生属性在内的全部属性的需求。

举个实际例子,查询小写字母a的所有属性:

my $char = 'a';
say $char.uniprops;

运行后你会看到输出包含ID_Start、ID_Continue、Alphabetic、Latin等所有该字符匹配的属性,和正则表达式中\p{...}能匹配的属性完全对应。

如果想筛选特定类型的属性,.uniprops还支持参数:

  • 仅查看派生属性:say $char.uniprops: :derived;
  • 仅查看脚本属性:say $char.uniprops: :script;
  • 仅查看区块属性:say $char.uniprops: :block;

另外,如果你需要更结构化的属性信息(比如属性名和对应的值/描述),可以用.uniprop-table方法,它会返回一个哈希表:

say $char.uniprop-table;

这个能帮你更清晰地梳理每个属性的具体内容。

内容的提问来源于stack exchange,提问作者brian d foy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 09:04:21