博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
用正则匹配多行文本
阅读量:5940 次
发布时间:2019-06-19

本文共 728 字,大约阅读时间需要 2 分钟。

如果有这样一个字符串

         $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.c2: src = arr.c build.c eval.c field.c 3:                           missing.c msg.c re.c version.c

注:这里能够匹配成功是因为perl的点号" ."能够匹配除了换行符号之外的字符,然后在加上换行符号"\n"

 

和任意符号".*"就把全部匹配完成了

方法二:有的正则引擎把点号"."解析可以匹配换行符"\n"那可以这样

 

$var =~ m/((^\w+\s*=\s*[^\n]*)(\n.*))/

效果跟刚才的那个一样,只是把点号替换为了"[^\n]",这样就排除了换行符号了。

 

 

转载地址:http://prmtx.baihongyu.com/

你可能感兴趣的文章
AWS S3宕机的启发: 云必须分散化
查看>>
零基础学习SVN之(二):CVS与SVN的区别
查看>>
HP Webinspect 10 访问wap的url
查看>>
单元测试Struts2的Action(包含源码)
查看>>
Linux存储入门:简易数据恢复方案--分区和LVM实战
查看>>
客服运营三部曲
查看>>
思科分析引擎助力大型数据中心应用发展
查看>>
7 种常用的排序算法直观感受
查看>>
程序员,告诉他们被打断的真实代价
查看>>
2017 年 VR 将走的 3 个方向 你更认可哪一个?
查看>>
《Docker技术入门与实战》——2.4 本章小结
查看>>
《ZEMAX光学设计超级学习手册》一一2.6 本章小结
查看>>
《Spark大数据分析实战》——1.4节弹性分布式数据集
查看>>
《高级无线网络—4G技术》——1.3 混合4G无线网络协议
查看>>
勒索病毒一周记:它让我们得到了什么经验教训?
查看>>
《研发企业管理——思想、方法、流程和工具》——1.11 论成本
查看>>
《Python硬件编程实战》——2.8 在Mac中安装Python
查看>>
《iOS应用开发指南——使用HTML5、CSS3和JavaScript》——导读
查看>>
小测一下fastjson的速度(纯娱乐)
查看>>
如何做618数据复盘?你需要掌握这8大思路
查看>>