如何捕获全局正则表达式替换中的每个匹配项?

Jakobus du Toit

我意识到可以通过一些变通方法来实现,但是我希望有一种更简单的方法(因为我经常使用这种类型的表达式)。

给定示例字符串:

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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

从查找表中捕获要替换的正则表达式匹配项

如何使用搜索/替换在Vim中访问正则表达式匹配项?

Objective-C中的正则表达式:如何用动态模板替换匹配项?

如何在Python中用正则表达式中的函数替换匹配项

仅替换全局正则表达式的第一个匹配项

正则表达式将匹配项中的所有匹配项替换x次

Python 正则表达式:分别替换每个匹配项

Python正则表达式用自己替换每个匹配项并添加新行

每个匹配项的C#正则表达式更改替换字符串

正则表达式捕获:将整个匹配项包含在捕获组中

正则表达式子方法不会替换python正则表达式中的所有匹配项

如何检测匹配和捕获的正则表达式未找到匹配项

正则表达式替换为匹配项

如何捕获和重用Java正则表达式的匹配项?

正则表达式未捕获预期组中的匹配项

将所有正则表达式匹配项捕获到向量中

捕获量化正则表达式中的所有匹配项

正则表达式捕获单词中的所有匹配项

如何捕获带有split的正则表达式的替换匹配组?

在Linux中的每个正则表达式匹配项中添加下划线

R-替换正则表达式中的第1组匹配项,但不替换完全匹配项

如何正则表达式匹配和正则表达式替换php中的字符串

如何使用正则表达式替换来包围匹配组中的每个字符

如何使正则表达式在找到每个匹配项时不消耗文本?

如何用正则表达式替换多个匹配项/组?

在python中的每个正则表达式匹配项后添加后缀?

js正则表达式替换某些段落中的匹配项

仅在正则表达式匹配项中替换字符

文件中单个匹配项的正则表达式字符串替换