正则匹配方法之findall

核心要点: findall()是将所有匹配到的字符,以列表的形式返回。
如果未匹配,则返回空列表。
一、pattern.findall()方法
语法: findall(string=None, pos=0, endpos=9223372036854775807, *, source=None)
函数作用:
在string[pos,endpos]区间从pos下标开始查找所有满足pattern的子串,直到endpos位置结束,并以列表的形式返回查找的结果,如果未找到则返回一个空列表。
参数说明:
**string:**被匹配的字符串
pos: 匹配的起始位置,可选,默认为0
endpos: 匹配的结束位置,可选,默认为len(string)。也就是说如果不指定pos和endpos的话,该方法会在整个字符串中查找满足条件的子串。

import re
# 1、正则表达式中无分组
# 查找到正则表达式匹配的前10个字符中的所有数字
pattern=re.compile(r'\d+')
match=pattern.findall('o89ne1two2three3four4',0,10)
print (match)  #返回['89','1','2']# 2、正则表达式中有1个分组
#查找字符串中所有的数字子串
import re
aa='erd12343.jl34d545fd789'
pattern=re.compile(r'.*?(\d+).*?')
result=pattern.findall(aa)
print (result)   # 返回 ['12343', '34', '545', '789']# 3、正则表达式中有多个分组
# 提取字符串中所有域名地址
import re
add = 'https://www.net.com.edu//action=?asdfsd and other https://www.baidu.com//a=b'
pattern=re.compile(r'((w{3}\.)(\w+\.)+(com|edu|cn|net))')
result = pattern.findall(add)
print (result)   #返回 [('www.net.com.edu', 'www.', 'com.', 'edu'), ('www.baidu.com', 'www.', 'baidu.', 'com')]

总结如下:
A、无分组时,将所有匹配到的字符,以列表的形式返回
B、正则表达式中只有1个分组(即圆括号)时,返回的列表元素由所有成功匹配表达式中分组内容组成。
C、当正则表达式中含有多个分组时,返回列表中的元素由所有满足匹配的内容组成,但是每个元素都是由表达式中分组内容组成的元组。
二、re.findall()方法
语法: findall(pattern, string, flags=0)
函数作用: 获取字符串中所有能匹配的字符串,并以列表的形式返回。

参数说明:
pattern: 匹配的正则表达式
string: 被匹配的字符串
flags: 标志位,用于控制正则表达式的匹配方式,如是否区分大小写,是否匹配多行等
与pattern.findall()的区别:
不能指定匹配的区间pos和endpos

# 这里只举一个简单的例子,其他的与pattern.findall()原理一样
import re
res = re.findall(r'\w+', 'I am a boy!')
print  (res)   # 返回 ['I', 'am', 'a', 'boy']

Python正则表达式_常用匹配方法findall相关推荐

  1. Python正则表达式及常用匹配

    1 正则表达式对象 re.RegexObject re.compile() 返回 RegexObject 对象. re.MatchObject group() 返回被 RE 匹配的字符串. start ...

  2. c#中regex的命名空间_C#_详解C#正则表达式Regex常用匹配,使用Regex类需要引用命名空间 - phpStudy...

    详解C#正则表达式Regex常用匹配 使用Regex类需要引用命名空间:using System.Text.RegularExpressions; 一.利用Regex类实现验证 示例1:注释的代码所起 ...

  3. python 正则表达式re常用操作符 使用方法 怎么用re正则表达式表示一个IP地址:0-255

    正则表达式:(三种表达方法) regular expression regex RE 正则表达式是用来简洁表达一组字符串的表达式. 正则表达式: 通用的字符差表达框架 简洁表达一组字符串的表达式 针对 ...

  4. python怎么降维_【Python算法】常用降维方法-常用降维方法解读

    常用降维方法-常用降维方法解读 1. 引言 机器学习领域中所谓的降维就是指采用某种映射方法,将原高维空间中的数据点映射到低维度的空间中.降维的本质是学习一个映射函数 f : x->y,其中x是原 ...

  5. python怎么降维_【Python算法】常用降维方法-常用降维方法的目的

    常用降维方法-常用降维方法的目的 正所谓每一个结果的出现都是一系列的原因导致的,当构建机器学习模型时候,有时候数据特征异常复杂,这就需要经常用到数据降维技术,下面主要介绍一些降维的主要原理. 1. 降 ...

  6. python正则表达式之re模块方法介绍

    python正则表达式之re模块其他方法 1:search(pattern,string,flags=0) 在一个字符串中查找匹配 2:findall(pattern,string,flags=0) ...

  7. js 正则表达式奇偶字符串替换_Python中的正则表达式及其常用匹配函数用法简介...

    今 日 鸡 汤 此曲只应天上有,人间难得几回闻. /1 前言/ 这次给大家主要是介绍Python中的正则表达式,及其相关函数的基本使用方法,并且捎带一些正则表达式给我们带来的便利. /2 简介/ Py ...

  8. 正则表达式、常用的方法、正则字符、定位符、转义字符、分组与反向、元素运动、元素左右运行、运动函数封装

    一.正则表达式 =>是一种模式,用于匹配字符串的模式 javascript 中内置的对象 RegExp 创建正则对象 构造函数方式 let reg=new RegExp('\d+') 字面量方式 ...

  9. pca算法python代码_三种方法实现PCA算法(Python)

    主成分分析,即Principal Component Analysis(PCA),是多元统计中的重要内容,也广泛应用于机器学习和其它领域.它的主要作用是对高维数据进行降维.PCA把原先的n个特征用数目 ...

最新文章

  1. Android零基础入门第77节:Activity任务栈和启动模式
  2. 【概念原理】四种SQL事务隔离级别和事务ACID特性
  3. k8s之informer简单理解
  4. 超好用!5款开源的移动自动化测试工具
  5. LL-verilog-HDLBitSim/circuit10解答和过程详解
  6. 常见MyEclipse报错—— serialVersionUID的作用
  7. css设计引言,HTML5与CSS3设计模式 引言(3)
  8. 怎看沃科斯扫地机器人型号_科沃斯型号区别是什么?
  9. 视频质量,分辨率以及码率之间的关系
  10. 成功之道——永远的知识
  11. ACCESS数据库增强器需求及介绍
  12. 用于 Domino Web Access 的 Notes.ini 变量
  13. 怎么用硕鼠下载优酷专辑
  14. z77主板可以用nv_刚和吧友讨论了z77加装nvme固态的问题。在这重开一帖。
  15. mouseover mouseout和mouseenter mouseleave的区别
  16. ADS中功放的PAE计算总结
  17. 中职学校计算机课程标准,中等职业学校信息技术课程标准2020.pdf
  18. 抖音小店无货源,如何找到适合自己店铺的达人,精选联盟玩法分享
  19. OS学习笔记-11(清华大学慕课)进程与线程
  20. Python爬虫11-Scrapy爬虫框架

热门文章

  1. boat启动器 minecraft_我的世界boat启动器最新版
  2. php 根据数组元素的长度排序
  3. 【笔记】Spring Boot
  4. 阿里云ECS服务器搭建
  5. 基于matlab实现人脸识别检测系统
  6. 深度理解GCD线程死锁,队列,同步和异步,串行和并发
  7. 基础语法篇_8——MFC:如何在对话框程序中让对话框捕获WM_KEYDOWN消息
  8. 静态图片转3D动态GIF/视频
  9. python中read、readline和readlines的区别
  10. 数据结构和算法推荐书单