Perl正则表达式如何用不确定的出现次数进行搜索和替换?

卡蒂沙

在文本文件中,我有一些变量声明,例如:

long  foo0,
      foo1,
      foo2 ;
long  foo3;
short foo4;
short foo5, foo6 ;
long  foo7, foo8 ;

我想使用Perl在所有“长”类型变量中添加后缀“ _r”,即。foo0 / 1/2/3/7/8,预期输出为:

long  foo0_r,
      foo1_r,
      foo2_r ;
long  foo3_r;
short foo4;
short foo5, foo6 ;
long  foo7_r, foo8_r ;

但是,我只能提出以下代码段:

#!/usr/bin/env perl
use strict;
use warnings;

while (<DATA>) {
    #apply regex match and replace
    s/(long\s+)(\w+)(\s*;)/$1$2_r$3/g;
    #print current line. 
    print;
}

##inlined data filehandle for testing. 
__DATA__
long  foo0,
      foo1,
      foo2 ;
long  foo3;
short foo4;
short foo5, foo6 ;
long  foo7, foo8 ;

它仅适用于foo3,但不适用于其他“长” foos。技巧是语法不是固定的。相反,“ long”和“;”之间可能有不确定数量的声明,以“,”分隔。任何人都可以在代码上提供一些提示吗?

123

您可以使用来更改记录分隔符,$/并使用负向后搜索来匹配long该记录中所有不存在的单词

use strict;
use warnings;

$/=";";
while (<DATA>) {
    s/(\w+\b)(?<!\blong)/$1_r/g if /^\s*long/;
    print;
}

##inlined data filehandle for testing.
__DATA__
long  foo0,
      foo1,
      foo2 ;
long  foo3;
short foo4;
short foo5, foo6 ;
long  foo7, foo8 ;

产生

long  foo0_r,
      foo1_r,
      foo2_r ;
long  foo3_r;
short foo4;
short foo5, foo6 ;
long  foo7_r, foo8_r ;

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何用正则表达式进行模式替换?

来自分类Dev

如何用评论创建正则表达式搜索和替换?

来自分类Dev

如何用js正则表达式匹配不确定的数字而没有特殊的单词

来自分类Dev

Emacs Lisp和不确定的正则表达式

来自分类Dev

Perl正则表达式:如何用html标签替换终端控制字符?

来自分类Dev

Perl正则表达式:如何用html标签替换终端控制字符?

来自分类Dev

如何用正则表达式替换文本?

来自分类Dev

如何用正则表达式替换字符序列?

来自分类Dev

如何用正则表达式替换WebStorm / PhpStorm

来自分类Dev

如何用变量替换vim正则表达式

来自分类Dev

如何用正则表达式替换字符序列?

来自分类Dev

在Perl正则表达式中动态搜索和替换

来自分类Dev

在Perl正则表达式中动态搜索和替换

来自分类Dev

在大文件中搜索和替换正则表达式而不会出现OutOfMemoryException

来自分类Dev

添加几个搜索和替换正则表达式

来自分类Dev

Ruby正则表达式搜索和替换数组

来自分类Dev

正则表达式搜索和替换数组键

来自分类Dev

添加几个搜索和替换正则表达式

来自分类Dev

Vim搜索和替换-正则表达式

来自分类Dev

正则表达式帮助-搜索和替换

来自分类Dev

正则表达式:搜索和替换缺失的标签

来自分类Dev

PhpStorm 正则表达式搜索和替换

来自分类Dev

GoogleDocs 搜索和替换中的正则表达式

来自分类Dev

如何用|进行正则表达式?

来自分类Dev

在Python中使用正则表达式进行搜索和替换

来自分类Dev

命令行工具,可轻松进行多行正则表达式搜索和替换

来自分类Dev

Vim-通过正则表达式搜索和替换进行增量编号

来自分类Dev

命令行工具,可轻松进行多行正则表达式搜索和替换

来自分类Dev

Dreamweaver帮助进行正则表达式搜索和替换

Related 相关文章

  1. 1

    如何用正则表达式进行模式替换?

  2. 2

    如何用评论创建正则表达式搜索和替换?

  3. 3

    如何用js正则表达式匹配不确定的数字而没有特殊的单词

  4. 4

    Emacs Lisp和不确定的正则表达式

  5. 5

    Perl正则表达式:如何用html标签替换终端控制字符?

  6. 6

    Perl正则表达式:如何用html标签替换终端控制字符?

  7. 7

    如何用正则表达式替换文本?

  8. 8

    如何用正则表达式替换字符序列?

  9. 9

    如何用正则表达式替换WebStorm / PhpStorm

  10. 10

    如何用变量替换vim正则表达式

  11. 11

    如何用正则表达式替换字符序列?

  12. 12

    在Perl正则表达式中动态搜索和替换

  13. 13

    在Perl正则表达式中动态搜索和替换

  14. 14

    在大文件中搜索和替换正则表达式而不会出现OutOfMemoryException

  15. 15

    添加几个搜索和替换正则表达式

  16. 16

    Ruby正则表达式搜索和替换数组

  17. 17

    正则表达式搜索和替换数组键

  18. 18

    添加几个搜索和替换正则表达式

  19. 19

    Vim搜索和替换-正则表达式

  20. 20

    正则表达式帮助-搜索和替换

  21. 21

    正则表达式:搜索和替换缺失的标签

  22. 22

    PhpStorm 正则表达式搜索和替换

  23. 23

    GoogleDocs 搜索和替换中的正则表达式

  24. 24

    如何用|进行正则表达式?

  25. 25

    在Python中使用正则表达式进行搜索和替换

  26. 26

    命令行工具,可轻松进行多行正则表达式搜索和替换

  27. 27

    Vim-通过正则表达式搜索和替换进行增量编号

  28. 28

    命令行工具,可轻松进行多行正则表达式搜索和替换

  29. 29

    Dreamweaver帮助进行正则表达式搜索和替换

热门标签

归档