我意识到可以通过一些变通方法来实现,但是我希望有一种更简单的方法(因为我经常使用这种类型的表达式)。
给定示例字符串:
my $str = "An example: sentence!*"
正则表达式可用于匹配每个标点符号并将它们捕获在数组中。之后,我可以简单地重复正则表达式并替换匹配项,如以下代码所示:
push (@matches, $1), while ($str =~ /([\*\!:;])/);
$str =~ s/([\*\!:;])//g;
是否可以将其组合到Perl中的一个单一步骤中,即在替换中是令人作呕的,同时还要在替换的匹配项上保持制表符?
您可以嵌入代码以在正则表达式中运行:
my @matches;
my $str = 'An example: sentence!*';
$str =~ s/([\*\!:;])(?{push @matches, $1})//g;
但是通过简单的匹配,我将分别进行捕获和替换。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句