加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Perl 的正则表达式中如果出现 ()

发布时间:2020-12-16 00:40:23 所属栏目:大数据 来源:网络整理
导读:这几天使用了perl进行文本处理,感觉很方便。 下面是几点经验,以后可能用到,记载在这防止遗忘。 1.perl中匹配汉字(处理中文) 使用 [/x80-0xff]来匹配汉字。我用它来匹配的是GB18030 编码的汉字,不知道其他的编码像unicode,utf-8,utf-16等可不可以。 2.

这几天使用了perl进行文本处理,感觉很方便。

下面是几点经验,以后可能用到,记载在这防止遗忘。

1.perl中匹配汉字(处理中文)

使用 [/x80-0xff]来匹配汉字。我用它来匹配的是GB18030 编码的汉字,不知道其他的编码像unicode,utf-8,utf-16等可不可以。

2.正则表达式的匹配

".*?"为最小匹配

".*"为最大匹配

使用'/'来进行转义

3.正则表达式

正则表达式有三种存在形式,他们分别是:

匹配:m/<regexp>/ (还可以简写为 /<regexp>/ ,略去 m)

替换:s/<pattern>/<replacement>/

转化:tr/<pattern>/<replacemnt>/

几个例子(转)

$str = "I love Perl";
$str =~ m/Perl/; # 表示如果在 $str 中发现 "Perl" 字符串,则返回 "1" 否则返回 "0"。
$str =~ s/Perl/BASH/; # 表示将变量 $str 中的 "Perl" 字符串替换为 "BASH",如果发生此替换则返回 "1",否则返回 "0"。
$str !~ tr/A-Z/a-z/; # 表示将变量 $str 中的所有大写字母转化为小写字母,如果转化发生了则返回 "0",否则返回 "1"。

另外还有:

foreach (@array) { s/a/b/; } # 此处每次循环将从 @array 数组中取出一个元素存放在 $_ 变量中,并对 $_ 进行替换处理。
while (<FILE>) { print if (m/error/); } # 这一句稍微复杂一些,他将打印 FILE 文件中所有包含 error 字符串的行。

Perl 的正则表达式中如果出现 () ,则发生匹配或替换后 () 内的模式被 Perl 解释器自动依次赋给系统 $1,$2 ...... 请看下面的例子:

$string = "I love perl";
$string =~ s/(love)/<$1>/; # 此时 $1 = "love",并且该替换的结果是将 $string 变为 "I <love> perl"
$string = "i love perl";
$string =~ s/(i)(.*)(perl)/<$3>$2<$1>/; # 这里 $1 = "i",$2 = " love ",$3 = "perl",并且替换后 $string 变为 "<perl> love <i>"


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/caohao2008/archive/2007/11/13/1881721.aspx

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读