在Perl正则表达式“查找并替换”中,如何分别选择每个匹配结果?

卡蒂沙

我想使用Perl对文本文件执行“搜索和替换”,并在替换完成后将每个匹配结果(作为元素)存储到数组中。我尝试了这个:

my $txt = "
this is a statement //this is comment
//this is a line of comment
more statements //more comments
";

## foreach or while
while ($txt =~ s/(\/\/.*?\n)/foo/gs) {
        if(defined $1) {
                push (@comments, $1);
                }
        }

foreach (0..$#comments) {
        print "\@comments[$_]= @comments[$_]";
        }

====>但是结果只给了我:

@comments[0]= //more comments

而我期望的是:

@comments[0]= //this is comment
@comments[1]= //this is a line of comment
@comments[2]= //more comments

关于这个问题有什么提示吗?提前谢谢&3q〜

卡西米尔和希波吕特

您可以使用e修饰符在替换内部执行代码(请参见perlretut):

my $txt = "
this is a statement //this is comment
//this is a line of comment
more statements //more comments
";

my @comments;

$txt =~ s{(//.*\n)} {push(@comments, $1);"foo"}eg;

print $_ foreach (@comments);

其他方法:由于您正在寻找内联注释,因此也可以逐行处理带有循环且没有g修饰符的代码。

笔记:

  • 如果要保留换行符,请\n从模式中删除
  • 从代码中删除注释可能比您想象的要复杂。例如,字符序列//可以包含在字符串中,因此更安全的方法是使用适当的解析器。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Perl中替换正则表达式的意外结果

来自分类Dev

Linux - 在路径中的每个斜杠后查找与正则表达式匹配的结果

来自分类Dev

Java正则表达式分别匹配每个组

来自分类Dev

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

来自分类Dev

正则表达式查找后,如何在 Notepad++ 中替换部分结果?

来自分类Dev

Perl 正则表达式查找并返回每个可能的匹配项

来自分类Dev

perl Multiline查找并用正则表达式替换

来自分类Dev

使用正则表达式查找匹配项-Perl

来自分类Dev

如何匹配正则表达式并在匹配结果中间替换

来自分类Dev

Perl 正则表达式,选择反向匹配

来自分类Dev

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

来自分类Dev

仅在Perl中的正则表达式匹配中替换字符串

来自分类Dev

Java中的正则表达式以匹配每个“行开始”并替换

来自分类Dev

Perl正则表达式从bash中查找并替换为变量

来自分类Dev

在多个文件中查找并替换正则表达式(匹配Unicode字符类Devanagari)

来自分类Dev

Perl正则表达式从替换中返回匹配项

来自分类Dev

在perl正则表达式匹配中替换单个字符

来自分类Dev

Perl如何为正则表达式匹配结果分配变量

来自分类Dev

查找从Perl中的特定位置开始的正则表达式匹配项

来自分类Dev

替换正则表达式中的每个模式

来自分类Dev

查找并替换正则表达式

来自分类Dev

正则表达式查找替换

来自分类Dev

Perl正则表达式替换

来自分类Dev

Perl正则表达式替换

来自分类Dev

如何使用正则表达式替换获得结果

来自分类Dev

正则表达式匹配替换

来自分类Dev

正则表达式匹配与替换

来自分类Dev

使用正则表达式在PhpStorm中查找/替换

来自分类Dev

查找和替换中的python正则表达式

Related 相关文章

  1. 1

    Perl中替换正则表达式的意外结果

  2. 2

    Linux - 在路径中的每个斜杠后查找与正则表达式匹配的结果

  3. 3

    Java正则表达式分别匹配每个组

  4. 4

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

  5. 5

    正则表达式查找后,如何在 Notepad++ 中替换部分结果?

  6. 6

    Perl 正则表达式查找并返回每个可能的匹配项

  7. 7

    perl Multiline查找并用正则表达式替换

  8. 8

    使用正则表达式查找匹配项-Perl

  9. 9

    如何匹配正则表达式并在匹配结果中间替换

  10. 10

    Perl 正则表达式,选择反向匹配

  11. 11

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

  12. 12

    仅在Perl中的正则表达式匹配中替换字符串

  13. 13

    Java中的正则表达式以匹配每个“行开始”并替换

  14. 14

    Perl正则表达式从bash中查找并替换为变量

  15. 15

    在多个文件中查找并替换正则表达式(匹配Unicode字符类Devanagari)

  16. 16

    Perl正则表达式从替换中返回匹配项

  17. 17

    在perl正则表达式匹配中替换单个字符

  18. 18

    Perl如何为正则表达式匹配结果分配变量

  19. 19

    查找从Perl中的特定位置开始的正则表达式匹配项

  20. 20

    替换正则表达式中的每个模式

  21. 21

    查找并替换正则表达式

  22. 22

    正则表达式查找替换

  23. 23

    Perl正则表达式替换

  24. 24

    Perl正则表达式替换

  25. 25

    如何使用正则表达式替换获得结果

  26. 26

    正则表达式匹配替换

  27. 27

    正则表达式匹配与替换

  28. 28

    使用正则表达式在PhpStorm中查找/替换

  29. 29

    查找和替换中的python正则表达式

热门标签

归档