博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【python cookbook】【字符串与文本】8.编写多行模式的正则表达式
阅读量:4935 次
发布时间:2019-06-11

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

问题:用正则表达式对一段文本块做匹配,但是希望在进行匹配时能够跨越多行

解决方案:

1、正则表达式添加对换行符的支持;

2、re.compile()函数一个有用的标记-re.DOTALL使得正则表达式中的句点(.)可以匹配所有的字符,也包括换行符;

如上问题一般出现在希望使用句点(.)来匹配任意字符,但是忘记了句点并不能匹配换行符时。例如,假设想匹配C语言风格的注释:

import retext = '''/* this is a...             multiline comment */...'''comment = re.compile(r'/\*(.*?)\*/')print(comment.findall(text))comment2 = re.compile(r'/\*((?:.|\n)*?)\*/') #(?:.|\n)指定了一个非捕获组(即,这个组只做匹配但不捕获结果,也不会分配组号)print(comment2.findall(text))comment_dotall=re.compile(r'/*(.*?)\*/',re.DOTALL)print (comment_dotall.findall(text))
>>> ================================ RESTART ================================>>> [][' this is a\n...             multiline comment ']['* this is a\n...             multiline comment ']>>>

 

转载于:https://www.cnblogs.com/apple2016/p/5790890.html

你可能感兴趣的文章
字典序最小问题
查看>>
iOS Touch ID 身份认证
查看>>
springboot 注解笔记
查看>>
图解HTTP---------------------------------------4
查看>>
hibernate实体类配置文件问题(字段使用默认值)
查看>>
rsync+inotify脚本
查看>>
LeetCode 860.柠檬水找零(C++)
查看>>
文件上传
查看>>
(Problem 92)Square digit chains
查看>>
HDU 2612 Find a way BFS,防止超时是关键
查看>>
0809
查看>>
FineUIPro v5.2.0已发布(jQuery升级,自定义图标,日期控件)
查看>>
HTML页和ashx之间关系的一点小应用
查看>>
智能合约安全前传-基础知识入门
查看>>
Myeclipse反编译插件
查看>>
Dubbo和Zookerper的关系
查看>>
centos 5 系统安装MYSQL5.7
查看>>
docker数据卷(转)
查看>>
地图定位及大头针设置
查看>>
oracle常用小知识点
查看>>