[^...]
是否可以在不使用但使用 的情况下编写此内容\P{...}
?
#!/usr/bin/env perl
use warnings;
use 5.012;
use utf8;
my $string = '_${Hello}?${World}!';
$string =~ s/[^\p{Alphabetic}\p{Mark}\p{Decimal_Number}\p{Connector_Punctuation}]/-/g;
say "<$string>";
嗯,这是可能的,但我不认为我会称之为改进:
#!/usr/bin/env perl
use warnings;
use 5.012;
use utf8;
my $string = '_${Hello}?${World}!';
$string =~ s/(?=\P{Alphabetic})
(?=\P{Mark})
(?=\P{Decimal_Number})
(?=\P{Connector_Punctuation}) . /-/xgs;
say "<$string>";
有了多个积极的前瞻性,他们都必须成功。所以它匹配一个.
不是 Alphabetic 且不是 Mark 且不是 Decimal_Number 而不是 Connector_Punctuation 的字符(the ),就像否定字符类一样。
我添加了/s
修饰符,因为原始正则表达式将匹配换行符(尽管您的示例字符串没有)。我添加了/x
这样我可以添加一些空格并将其分成多行。
无论如何,你有什么反对角色课程的?