用正则匹配多行文本

本文介绍了如何使用正则表达式匹配多行文本。在处理包含多个连续行的字符串时,传统的^w+s*=s*.*$无法有效匹配。文章提到了两种解决方案:方法一是利用Perl语言,通过任意符号".*"完成全文本匹配;方法二是使用支持点号"."匹配换行符" "的正则引擎进行匹配。
摘要由CSDN通过智能技术生成

如果有这样一个字符串

         $var = "src = arr.c build.c eval.c field.c \

                                  missing.c msg.c re.c version.c"

用一般的^\w+\s*=\s*.*$只能匹配上面的那句,而下面的那一句就无法匹配了

方法一:使用的是perl

$var = "src = arr.c build.c eval.c field.c \
                          missing.c msg.c re.c version.c";

$var =~ m/((^\w+\s*=\s*.*)(\n.*))/;
print "$1: ".$1."\n";
print "$2: ".$2."\n";
print "$3: ".$3."\n";
 结果为:

1: src = arr.c build.c eval.c field.c 
                          missing.c msg.c re.c version.c
2: src = arr.c build.c eval.c field.c 
3: 
                          missing.c msg.c re.c version.c

注:这里能够匹配成功是因为perl的点号" ."能够匹配除了换行符号之外的字符,然后在加上换行符号&#
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值