常用方法

pattern = "DNS:(.*?)[,\s]"  # [] 表示"," 或者s结尾
#regex = re.compile(pattern, re.IGNORECASE|re.S)
stritem = re.findall(pattern, buff, re.IGNORECASE|re.S)
# re.IGNORECASE 表示忽略大小写
# re.S 如果不使用re.S参数,则只在每一行内进行匹配,如果一行没有,就换下一行重新开始。
而使用re.S参数以后,正则表达式会将这个字符串作为一个整体,在整体中进行匹配。import re
a = """sdfkhellolsdlfsdfiooefo:
877898989worldafdsf"""
b = re.findall('hello(.*?)world',a)
c = re.findall('hello(.*?)world',a,re.S)
print ('b is ' , b)
print ('c is ' , c)# 输出结果:
# b is  []
# c is  ['lsdlfsdfiooefo:\n877898989']

这个问题一般出现在希望使用句点(.)来匹配任意字符,但是忘记了句点并不能匹配换行符时:

import re
comment = re.compile(r'/\*(.*?)\*/')  # 匹配C的注释
text1 = '/* this is a comment */'
text2 = """/*this is a multiline comment */"""comment.findall(text1)
Out[4]: [' this is a comment ']comment.findall(text2)  # 由于text2文本换行了,没匹配到
Out[5]: []

解决方法1:添加对换行符的支持,(?:.|\n)指定了一个非捕获组(即,这个组只做匹配但不捕获结果,也不会分配组号)

comment = re.compile(r'\*((?:.|\n)*?)\*/')
comment.findall(text2)
Out[7]: ['this is a \n    multiline comment ']

解决方法2:re.compile()函数可接受一个有用的标记--re.DOTALL。这使得正则表达式中的句点(.)可以匹配所有的字符,也包括换行符

comment = re.compile(r'/\*(.*?)\*/', flags=re.DOTALL)
comment.findall(text2)
Out[10]: ['this is a \n    multiline comment ']

re.DOTALL --编写多行模式的正则表达式相关推荐

  1. python工具是什么-使用Python编写命令行工具有什么好的库?

    使用Python编写命令行工具的库很多,我最推荐的还是Google Fire Hello World 要介绍Fire是什么,看一个简单的例子就明白了 # calc.py import fire cla ...

  2. (转)php-cli模式学习(PHP命令行模式)

    php-cli模式学习(PHP命令行模式) 之前知道php-cli模式是一种类似shell命令式的执行php程序,不过一直以为这个是一种落后的方式,应该没有什么意义,因为从没有遇到过使用这个cli模式 ...

  3. Windos下用setx.exe命令行模式下永久设置系统环境变量

    From: http://www.cnblogs.com/soli/archive/2007/08/30/876283.html setx.exe不是系统默认自带的命令,但可以从微软的网站(2K,XP ...

  4. go编写命令行工具_编写者的命令行文档转换工具

    go编写命令行工具 今天,我们有足够的工具可用于在我们的计算机上编辑备忘录,信件,论文,书籍,演示幻灯片和其他文档. 这既有好处也有缺点:一方面,如果您不喜欢某个软件,则可以随时随地转到另一个软件上: ...

  5. php mysql 命令行模式_PHP 的命令行模式

    从版本 4.3.0 开始,PHP 提供了一种新类型的 SAPI(Server Application Programming Interface,服务端应用编程端口)支持,名为 CLI,意为 Comm ...

  6. PHP 命令行模式实战之cli+mysql 模拟队列批量发送邮件(在Linux环境下PHP 异步执行脚本发送事件通知消息实际案例)...

    源码地址:https://github.com/Tinywan/PHP_Experience 测试环境配置: 环境:Windows 7系统 .PHP7.0.Apache服务器 PHP框架:ThinkP ...

  7. Windos下用setx.exe命令行模式下永久设置系统环境变量(转)

    setx.exe不是系统默认自带的命令,但可以从微软的网站(2K ,XP )上下载到,是官方的咚咚,所以可以放心使用.这里 是我从2K 里的安装文件中抽取出来的exe文件,不想安装又信得过我的话可以下 ...

  8. PHP 的命令行模式

    被安全模式限制或屏蔽的函数Built-in web server 特点 在线手册:中文 英文PHP手册 PHP 的命令行模式 Table of Contents Built-in web server ...

  9. oracle cmd导出数据库命令行,oracle 中数据库完全导入导出:cmd命令行模式(转载)...

    Oracle数据导入导出imp/exp就相当于oracle数据还原与备份.exp命令可以把数据从远程数据库服务器导出到本地的dmp文件,imp命令可以把dmp文件从本地导入到远处的数据库服务器中. 利 ...

最新文章

  1. SQL_由创建表引出
  2. 【拔刀吧少年】之sed编辑器
  3. 作者:宋长青,山东农业大学教授,农业大数据研究中心常务副主任。
  4. JAR包命令解压以及再命令打包
  5. 简述java的异常处理机制_简述java异常处理机制
  6. mysql plus baomidou_com.baomidou.mybatisplus.core.mapper 不存在
  7. 关于Dll、Com组件、托管dll和非托管dll的理解
  8. python编程入门教程下载-《Python编程从入门到精通》PDF高清完整版-PDF下载
  9. nginx日志采集 mysql_shell + go + mysql nginx日志统计 (三) :数据的展示
  10. 超级列表框排序mysql_超级列表框排序
  11. 猎豹网校 ASP.NET全套教程
  12. 互联网日报 | 前11月全国网购超10万亿元;B站8月月活首次突破2亿;华为Mate40标准版开启预售...
  13. 谈谈我对面向对象的理解
  14. 深入浅出MFC:Windows程序的生与死
  15. html点击切换图片代码简易,html点击按钮时切换图片的代码是什么?
  16. 微信小说小程序源码-附带采集
  17. 根据北上资金操作上证50指数基金
  18. python的turtle画小人_利用Python如何画一颗心、小人发射爱心
  19. beautifulsoup html内容_用python3教你任意Html主内容提取
  20. ORACLE-023:令人烦恼的 ora-01722 无效数字

热门文章

  1. 巫师3狂猎游戏风景Mac动态壁纸
  2. macOS Big Sur11.2发布候选版更新:修复蓝牙和显示连接问题
  3. 合成未来宝宝照片_[萌主争霸]2020年台历宝宝投票评选开始啦!快来给你喜欢的萌宝投票吧~...
  4. 洛谷 数论入门相关题目--2022.01.22
  5. 1.6 编程基础之一维数组 05 年龄与疾病 python
  6. js检测密码强度的功能实现逻辑思路及实例
  7. settimeout需要清除吗_前端20个真正灵魂拷问,前端初级到中级你还需要这个!
  8. Python | Socket02 - 使用with语句建立一个TCP服务器(阻塞+单线程),将TCP客户端发过来的字符串原路返回
  9. centos7远程桌面端口_CentOS7启用远程桌面连接
  10. Linux笔记-bash中执行命令并将执行的命令结果存储为变量