用正则表达式处理文本

2019-03-26  本文已影响0人  食梦狸猫

利用正则表达式的模式定位部分字符串并做出相应的修改。
m//模式匹配 是查找功能。
s///就是查找并替换的功能

s/barney/fred/;
#把barney替换为fred
my $copy = $original =~ s/\d +ribs?/10/r

/l和/u只会影响后面的一个字符

s/(fred | barney)/\u$1/ig;

split操作符

根据给定的模式拆分字符串,用拆分模式扫描指定的字符串并返回字段。如果有两个分隔符连在一起,就会产生空字段。

my @fields = split /separator/,"abc:def::"
#得到("abc","def","")
my $x = join ":",4,5,6,7;
#结果是"4:5:6:7"

更强大的正则表达式

/fred.+barney/
#正则表达式引擎的回溯动作会很繁琐
/fred.+?barney/
open FILE,$filename
    or die "can't open!";
my $lines = join ' ',<FILE>;
$lines =~ s/^/$filename: /gm;

从命令行直接编辑

perl -p -i.bak -w -e 's/Randall/Randal/g' fred*.dat

-p让perl自动生成一小段程序。
-i.bak是备份
-w开启警告
-e表面后面的是执行的程序代码

上一篇 下一篇

猜你喜欢

热点阅读