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的人在这里做什么。