找回密码
 注册
查看: 12496|回复: 0

perl语言正则表达式匹配多行文本

[复制链接]
发表于 2011-11-14 20:55:49 | 显示全部楼层 |阅读模式
通常,正则表达式是针对单行文本的。由于Perl 可以处理任意长度的字符串,因此,Perl 的模式可以轻易的对多行文本进
行匹配,就像单行文本一样。当然,表达式中应当包含多行文本。下面的字符串中有4 行:
$_ =“I’am much better\nthan Barney is\nat bowling,\nWilma,\n”;
锚定^和$是指整个字符串的开头和结束。但/m 这个正则表达式选项允许它们根据内部的换行符进行匹配(将
m看作多行(think m for multiple lines))。这时锚定针对每一行,而非整个字符串。因此,这个模式可以匹配上:
print “Found ‘wilma’at start of line\n”if /^wilma\b/im;
同样的,在多行字符串中,也可以分别针对单行进行替换。在下面的例子中,我们将整个文件读入一个变量之中◆,然后
将文件名字加在每一行的开头处:
◆希望它很小。我们指的是文件,而非变量名。
open FILE, $filename
or die “Can’t open ‘$filename’: $!”;
my $lines = join '', <FILE>;
$lines =~ s/^/$filename: /gm;
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|小黑屋|生物统计家园 网站价格

GMT+8, 2024-11-21 20:21 , Processed in 0.019070 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表