原文链接

python re 模块 findall 函数用法简述

代码示例:

 >>> import re
>>> s = "adfad asdfasdf asdfas asdfawef asd adsfas " >>> reObj1 = re.compile('((\w+)\s+\w+)')
>>> reObj1.findall(s)
[('adfad asdfasdf', 'adfad'), ('asdfas asdfawef', 'asdfas'), ('asd adsfas', 'asd')] >>> reObj2 = re.compile('(\w+)\s+\w+')
>>> reObj2.findall(s)
['adfad', 'asdfas', 'asd'] >>> reObj3 = re.compile('\w+\s+\w+')
>>> reObj3.findall(s)
['adfad asdfasdf', 'asdfas asdfawef', 'asd adsfas']

详解:

findall函数返回的总是正则表达式在字符串中所有匹配结果的列表,此处主要讨论列表中“结果”的展现方式,即findall中返回列表中每个元素包含的信息。

@1.当给出的正则表达式中带有多个括号时,列表的元素为多个字符串组成的tuple,tuple中字符串个数与括号对数相同,字符串内容与每个括号内的正则表达式相对应,并且排放顺序是按括号出现的顺序。

@2.当给出的正则表达式中带有一个括号时,列表的元素为字符串,此字符串的内容与括号中的正则表达式相对应(不是整个正则表达式的匹配内容)。

@3.当给出的正则表达式中不带括号时,列表的元素为字符串,此字符串为整个正则表达式匹配的内容。

官方文档:

re.findallpatternstringflags = 0 

返回的所有非重叠的匹配模式的字符串,如字符串列表。该字符串进行扫描左到右,并匹配以发现的顺序返回。如果模式中存在一个或多个组,请返回组列表; 如果模式有多个组,这将是一个元组列表。结果中包含空匹配项。

 
 
 
 

最新文章

  1. IT行业的技术类岗位分为许多种,如何判断自己适合哪种?
  2. TurboDemo软件使用教程:视频编辑
  3. 好推二维码如何通过应用宝微下载支持微信自动打开APP下载?
  4. CmRegisterCallback使用方法
  5. 自己开发基于c#的垂直滚动条控件
  6. 更改Windows系统的密码之后,SQL Server 2008服务无法启动
  7. canvas实现钟表
  8. CERT_KEY_CONTEXT_PROP_ID,CERT_KEY_PROV_INFO_PROP_ID,CERT_KEY_PROV_HANDLE_PROP_ID和CERT_KEY_SPEC_PROP_ID
  9. 2016 icpc-camp 之旅(一)
  10. OC2-xml文件解析
  11. js数组定义和获取其长度
  12. Extjs3笔记 fbar
  13. Linux学习之十一、环境变量的功能
  14. [BZOJ1005] [HNOI2008] 明明的烦恼 (prufer编码)
  15. windows开发各种dll缺失
  16. Vue中的~(静态资源处理)
  17. 转:关于将Java编译过的.class文件打成jar可执行文件/JAR详解
  18. Java Web(三) Servlet会话管理
  19. poj1741 Tree(点分治)
  20. LPC43xx SGPIO I2C Implementation

热门文章

  1. scau 18087 开始我是拒接的 mobius
  2. 《深入理解java虚拟机》笔记(2)HotSpot虚拟机对象探秘
  3. OpenCV图像处理之 Mat 介绍
  4. 一道笔试题和UML思想 ~
  5. 洛谷P1057 传球游戏
  6. NodeJS学习视频
  7. 【踩坑】Nginx上配置ssl证书实现https访问
  8. Java面向对象(接口、多态)
  9. 百度地图API的基本用法
  10. 关于死循环while(true){}或for(;;){}的总结