Perl 5 和 Perl 6 中的 Unicode 属性"Space"



Unicode属性p{Space} Perl5扩展吗?

在 Perl5 中,Space匹配所有空格

my $s = "onettwonthree";
$s =~ s/p{Space}/*/g;
say $s;
# one*two*three

而在 Per6 中,它可能只匹配一个简单的空格

my $s = "onettwonthree";
$s.=subst( /<:Space>/, '*', :g );
say $s;
# one     two
# three

表器属于类别控制,而不是空格。你感兴趣的属性实际上叫做White_Space,这就是你需要在 Perl 6 中使用的属性:

say so "t" ~~ /<:White_Space>/

几种替代拼写似乎也可用,包括WhiteSpace,WSpace及其小写变体,但不是WS。

还有一个内置的规则<ws>,它匹配零个或多个空格字符而不是单个空格字符,当然还有s,它已经使用了 Unicode 语义。

它不是真正的扩展,但它是另一个 Unicode 属性的简写名称,p{White_Space} 。这在手册页perluniprops中有详细记录。

我不知道Perl6的人在这里做什么。

最新更新