常用方法

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. 如何使用SMOD和CMOD进行SD的用户增强
  2. Symfony2Book16:Symfony2内部02-内核
  3. Linux下Anaconda3安装及使用教程
  4. how to replace the note reuse project into my own one
  5. k近邻算法C++二维情况下的实现
  6. 优化算法笔记|飞蛾扑火优化算法理解及实现
  7. wince flash Android,关于wince下用C#实现flash播放器
  8. 什么是CMMI认证?
  9. MSN不显示头像怎么办?
  10. B站五面面经(附过程、答案)
  11. c语言long可以存几位数,long long 可以支持多少位的数?
  12. 简单的C语言顺序结构例题介绍
  13. wpf 语音通话_WPF+WCF一步一步打造音频聊天室(四):视频会话
  14. 显卡优化以提高计算机性能,《绝地求生》完美显卡优化教程:低配电脑也能吃鸡无压力!...
  15. JVM(2):垃圾收集器与gc
  16. android studio日志不打印,Mac 下 Android Studio 不打印日志的解决办法
  17. 微信小程序-个人中心/钱包
  18. 利用python画空间分布图
  19. 【好文转载】产品经理做产品设计的九步法
  20. games101 作业4

热门文章

  1. 摸鱼也要讲究方法:工作学习中玩手机并不能缓解无聊和疲劳
  2. 学生PHP校园超市网站制作 学生PHP网页毕设源码 学生动态数据库网站作品 PHP电子商务商城购物网站
  3. 提高篇 第一部分 基础算法 第4章 广搜的优化技巧
  4. 简单英文题 24 Divisor and Multiple(python)
  5. php通过使用curl获取http或者https的响应信息的方式
  6. 【C#桌面应用】第四节:制作简单的登录注册模拟窗口-登录部分的模拟
  7. c语言编程调试找不到路径,VScode 调试C/C++时出现无法打开“X”: 找不到文件(file:///XXXX) 的解决办法...
  8. tomcat 优化_浅谈Tomcat服务器优化方法
  9. Jenkins Gitee 实现持续集成CI/CD工具【免费、推荐】
  10. Qt文档阅读笔记-QLibrary基本概念及实例