今天写代码,在写到郑泽的时候遇到了一个坑,这个坑是re模块下的findall()函数。

下面我将结合代码,记录一下

importre

string="abcdefg acbdgef abcdgfe cadbgfe"

#带括号与不带括号的区别#不带括号

regex=re.compile("((\w+)\s+\w+)")

print(regex.findall(string))

#输出:[('abcdefg acbdgef', 'abcdefg'), ('abcdgfe cadbgfe', 'abcdgfe')]

regex1=re.compile("(\w+)\s+\w+")

print(regex1.findall(string))

#输出:['abcdefg', 'abcdgfe']

regex2=re.compile("\w+\s+\w+")

print(regex2.findall(string))

#输出:['abcdefg acbdgef', 'abcdgfe cadbgfe']

第一个 regex 中是带有2个括号的,我们可以看到其输出是一个list 中包含2个 tuple

第二个 regex 中带有1个括号,其输出的内容就是括号匹配到的内容,而不是整个表达式所匹配到的结果。

第三个 regex 中不带有括号,其输出的内容就是整个表达式所匹配到的内容。

无括号:字母或数字或下划线+空白+字母或数字或下划线+,所以分成了俩组

一个括号:在无括号的基础上,匹配 字母或数字或下划线(后面是字母或数字或下划线+)

俩个括号:在无括号的基础上,先分俩组,再在里面括号基础上查到第二组内容,整体分组组成元组,放到列表中

结论:findall()返回的是括号所匹配到的结果(如regex1),多个括号就会返回多个括号分别匹配到的结果(如regex),如果没有括号就返回就返回整条语句所匹配到的结果(如regex2)。所以在提取数据的时候就需要注意这个坑。

实际上是由其并不是python特有的,这是 正则 所特有的 , 任何一门高级语言使用正则都满足这个特点:有括号时只能匹配到括号中的内容,没有括号【相当于在最外层增加了一个括号】。在正则里面 “()” 代表的是分组的意思,一个括号代表一个分组,你只能匹配到"()"中的内容

python re findall 效率_python re模块findall()详解相关推荐

  1. python两点分布产生随机数_Python随机数生成模块random详解

    一.概述 random模块 用于生成伪随机数 之所以称之为伪随机数,是因为真正意义上的随机数(或者随机事件)在某次产生过程中是按照实验过程中表现的分布概率随机产生的,其结果是不可预测的,是不可见的.而 ...

  2. python zipfile模块分卷_python zipfile模块用法详解

    python对zip格式的支持很简单,且好用. 1)简单应用 用python来做压缩和解压缩的简单用法. 代码示例: import zipfile f = zipfile.ZipFile('filen ...

  3. python做插件应用_Python插件机制实现详解

    插件机制是代码/功能反向依赖注入到主体程序的一种方法,编译型语言通过动态加载动态库实现插件.对于Python这样的脚本语言,实现插件机制更简单. 机制 Python的__import__方法可以动态地 ...

  4. python插件使用教程_Python插件机制实现详解

    插件机制是代码/功能反向依赖注入到主体程序的一种方法,编译型语言通过动态加载动态库实现插件.对于Python这样的脚本语言,实现插件机制更简单. 机制 Python的__import__方法可以动态地 ...

  5. python加载机制_Python插件机制实现详解

    插件机制是代码/功能反向依赖注入到主体程序的一种方法,编译型语言通过动态加载动态库实现插件.对于Python这样的脚本语言,实现插件机制更简单. 机制 Python的__import__方法可以动态地 ...

  6. python count函数代码_python count函数用法详解_后端开发

    fgetc函数的作用详解_后端开发 fgetc函数的作用是从指定文件读入一个字符,要求文件的打开方式必须是以读或读写的方式或者追加的方 式,只写方式是不能读的. 在python中可以使用"c ...

  7. python命名空间和闭包_Python函数基础实例详解【函数嵌套,命名空间,函数对象,闭包函数等】...

    本文实例讲述了Python函数基础用法.分享给大家供大家参考,具体如下: 一.什么是命名关键字参数? 格式: 在*后面参数都是命名关键字参数. 特点: 1.约束函数的调用者必须按照Kye=value的 ...

  8. python字典的用法_Python字典的用法详解(附示例)

    本篇文章给大家带来的内容是关于Python字典的用法详解(附示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 字典的表现形式为:{key:value},键和值之间用冒号分隔,每个 ...

  9. python lambda函数加法_python lambda的使用详解

    1. lambda语法 lambda argument_list: expression lambda是Python预留的关键字,argument_list(参数列表)和expression(关于参数 ...

最新文章

  1. C#中关于静态与非静态的一个疑问
  2. 1.我和python的第一次亲密接触
  3. mysql 数据库 导入兼容_mysql数据库的导入和导出
  4. 程序员终结者还是“白嫖”开源代码?GitHub推出的AI编程辅助工具陷入争议
  5. 十九.激光和惯导LIO-SLAM框架学习之项目工程代码介绍---代码框架和一些文件解释
  6. 电厂运维的cis数据_科技驱动升级,各类智慧电厂技术大盘点
  7. “看看人家苹果和亚马逊”,嫌薪酬太低,谷歌员工“炮轰”高管
  8. layui button按钮点击导致页面重新刷新的解决方案
  9. 在Linux下禁用IPv6的方法小结
  10. NAT64实例(ENSP实现)
  11. Scrapy-spiders下项目运行方法
  12. 微信挪车功能成功上线,祝贺一下自己
  13. CSS设置文本、段落样式
  14. WeX5 APP发布及版本升级注意事项
  15. Mysql sql 对行数据求和
  16. CVTE笔试面试经验分享(硬件)—2020秋招
  17. 蚂蚁集团TRaaS技术风险防控平台入选中国信通院《信息系统稳定性保障能力建设指南(1.0)》最佳实践案例
  18. 移动端多了企业还需要做seo吗
  19. 机器学习(32)之典型相关性分析(CCA)详解 【文末有福利......】
  20. 梅斯医学药物警戒系统(PV)通过E2B R3测试,释放PV价值

热门文章

  1. Python+Appium寻找蓝牙/wifi匹配
  2. 静态代理设计与动态代理设计
  3. 浅尝flutter中的动画(淡入淡出)
  4. A 子类继承父类,子类的构造函数会覆盖父类的构造函数
  5. 南京打造大数据创新孵化平台
  6. 第十二章 Shell脚本编写及常见面试题(三)
  7. django app中扩展users表
  8. Spring中实现监听的方法
  9. extern 使用方法具体解释
  10. python 时间序列预测_使用Python进行动手时间序列预测