Python之re模块详解

目录
  • Python——re模块
    • 简介
    • 预定义字符
    • 特殊字符
    • 反斜杠问题
    • 匹配方法
  • 总结

Python——re模块

简介

定义:re模块称为正则表达式;

作用:创建一个"规则表达式",用于验证和查找符合规则的文本,广泛用于各种搜索引擎、账户密码的验证等;

预定义字符

"""
\d	匹配所有的十进制数字	0-9
\D	匹配所有的非数字,包含下划线
\s	匹配所有空白字符(空格、TAB等)
\S	匹配所有非空白字符,包含下划线
\w	匹配所有字母、汉字、数字	a-z A-Z 0-9
\W	匹配所有非字母、汉字、数字,包含下划线
"""

特殊字符

1、$:匹配一行的结尾(必须放在正则表达式最后面)

2、^:匹配一行的开头(必须放在正则表达式最前面)

3、*:前面的字符可以出现0次或多次(0~无限)

4、+:前面的字符可以出现1次或多次(1~无限)

5、?:变"贪婪模式"为"勉强模式",前面的字符可以出现0次或1次

6、.:匹配除了换行符"\n"之外的任意单个字符

7、|:两项都进行匹配

8、[ ]:代表一个集合,有如下三种情况

  • [abc]:能匹配其中的单个字符
  • [a-z0-9]:能匹配指定范围的字符,可取反(在最前面加入^)
  • [2-9] [1-3]:能够做组合匹配

9、{ }:用于标记前面的字符出现的频率,有如下情况:

  • {n,m}:代表前面字符最少出现n次,最多出现m次
  • {n,}:代表前面字符最少出现n次,最多不受限制
  • {,m}:代表前面字符最多出现n次,最少不受限制
  • {n}:前面的字符必须出现n次

反斜杠问题

字符串中有反斜杠的,需要对反斜杠做转义:

str = "\\123 223"		# \123 223
str = r"\123 223"		# \123 223

在正则表达式中,我们需要用多个反斜杠来匹配一个反斜杠:

find = re.search('\\\\\w+', str)
find = re.search(r'\\\w+', str)

匹配方法

1、match:在目标文本的开头进行匹配

find = re.math('hello', str1)		# 匹配成功返回匹配对象hello,不成功返回None

2、search:在整个目标文本中进行匹配

3、findall:扫描整个目标文本,返回所有与规则匹配的子串组成的列表,如果没有匹配的返回空列表

4、finditer:扫描整个目标文本,返回所有与规则匹配的子串组成的迭代器

5、fullmatch:要求目标文本要完全匹配规则,否则返回None

6、sub:将与规则匹配的子串替换为其他文本

str1 = re.sub('\w+', 'aaa', str, count=0)		# count默认为0,表示全部替换

7、split:从与规则匹配的子串进行切割,返回切割后子串组成的列表

8、匹配对象的方法(对匹配到的对象使用):

():分组字符,可以为匹配到的内容分组,快速获取到分组中的数据

  • group:用于查看指定分组匹配到的内容
str = '<p>这是一个<a href="###">文本</a></p>
find = re.search('<a href="(.+)">(\w+)</a>', str)
print(find.group())		# 默认为0,表示匹配到的全部文本,传入1时输出第一个分组###
  • groups:返回一个元组,组内为所有匹配到的内容(上面案例输出('###',‘文本'))
  • groupdict:返回一个字典,包含分组的键值对,需要为分组命名
find = re.search('<a href="(?P<href>.+)">(?P<text>\w+)</a>', str)

start:返回匹配到的内容在文本中的起始索引end:返回匹配到的内容在文本中的结束索引span:返回由起始索引和结束索引组成的元组 推荐

推荐一个正则闯关网站:https://alf.nu/RegexGolf

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注我们的更多内容!

(0)

相关推荐

  • python re模块的高级用法详解

    总结 以上所述是小编给大家介绍的python re模块的高级用法详解,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的.在此也非常感谢大家对我们网站的支持!

  • 正则表达式+Python re模块详解

    正则表达式(Regluar Expressions)又称规则表达式,在代码中常简写为REs,regexes或regexp(regex patterns).它本质上是一个小巧的.高度专用的编程语言. 通过正则表达式可以对指定的文本实现 匹配测试.内容查找.内容替换.字符串分割 等功能. re模块介绍 Python中的re模块提供了一个正则表达式引擎接口,它允许我们将正则表达式编译成模式对象,然后通过这些模式对象执行模式匹配搜索和字符串分割.子串替换等操作.re模块为这些操作分别提供了模块级别的函数

  • python正则表达式re模块详解

    快速入门 import re pattern = 'this' text = 'Does this text match the pattern?' match = re.search(pattern, text) s = match.start() e = match.end() print('Found "{0}"\nin "{1}"'.format(match.re.pattern, match.string)) print('from {0} to {1}

  • 详解Python正则表达式re模块

    正则是处理字符串最常用的方法,我们编码中到处可见正则的身影. 正则大同小异,python 中的正则跟其他语言相比略有差异: 1.替换字符串时,替换的字符串可以是一个函数 2.split 函数可以指定分割次数,这会导致有个坑 3.前项界定的表达式必须定长 下面详细描述下 re 模块的使用方法,其实,注意上面提到的三点差异就好 1.match 说明: re.match 尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match()就返回 None. 语法: re.match(pat

  • python re模块匹配贪婪和非贪婪模式详解

    这篇文章主要介绍了python re模块匹配贪婪和非贪婪模式详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 python贪婪和非贪婪 正则表达式通常用于在文本中查找匹配的字符串.Python里数量词默认是贪婪的(在少数语言里也可能是默认非贪婪),总是尝试匹配尽可能多的字符:非贪婪则相反,总是尝试匹配尽可能少的字符.在"*","?","+","{m,n}"后面加上?,使贪婪

  • Python之re模块案例详解

    一.正则表达式   re模块是python独有的匹配字符串的模块,该模块中提供的很多功能是基于正则表达式实现的,而正则表达式是对字符串进行模糊匹配,提取自己需要的字符串部分,他对所有的语言都通用.注意: re模块是python独有的 正则表达式所有编程语言都可以使用 re模块.正则表达式是对字符串进行操作 因为,re模块中的方法大都借助于正则表达式,故先学习正则表达式. (一)常用正则  1.字符组 在同一个位置可能出现的各种字符组成了一个字符组,在正则表达式中用[]表示 正则 待匹配字符 匹配

  • python的re模块使用方法详解

    一.正则表达式的特殊字符介绍 正则表达式 ^ 匹配行首 $ 匹配行尾 . 任意单个字符 [] 匹配包含在中括号中的任意字符 [^] 匹配包含在中括号中的字符之外的字符 [-] 匹配指定范围的任意单个字符 ? 匹配之前项的1次或者0次 + 匹配之前项的1次或者多次 * 匹配之前项的0次或者多次 {n} 匹配之前项的n次 {m,n} 匹配之前项最大n次,最小m次 {n,} 配置之前项至少n次 二.re模块的方法介绍 1.匹配类方法 a.findall方法 # findall方法,该方法在字符串中查找

  • python中random模块详解

    Python中的random模块用于生成随机数,它提供了很多函数.常用函数总结如下: 1. random.random() 用于生成一个0到1的随机浮点数: 0 <= n < 1.0 2. random.seed(n) 用于设定种子值,其中的n可以是任意数字.random.random() 生成随机数时,每一次生成的数都是随机的.但是,使用 random.seed(n) 设定好种子之后,在先调用seed(n)时,使用 random() 生成的随机数将会是同一个. 3. random.unifo

  • python爬虫selenium模块详解

    selenium模块 selenium基本概念 selenium优势 便捷的获取网站中动态加载的数据 便捷实现模拟登陆 selenium使用流程: 1.环境安装:pip install selenium 2.下载一个浏览器的驱动程序(谷歌浏览器) 3.实例化一个浏览器对象 基本使用 代码 from selenium import webdriver from lxml import etree from time import sleep if __name__ == '__main__': b

  • Python中BeautifulSoup模块详解

    目录 前言 安装库 导入库 解析文档示例 提取数据示例 CSS选择器 实例小项目 总结 前言 BeautifulSoup是主要以解析web网页的Python模块,它会提供一些强大的解释器,以解析网页,然后提供一些函数,从页面中提取所需要的数据,目前是Python爬虫中最常用的模块之一. 安装库 在使用前需要安装库,这里建议安装bs4,也就是第四版本,因为根据官方文档第三版的已经停止更新.同时安装lxml解释器 pip3 install bs4 pip3 install lxml 导入库 from

  • Python正则表达式re模块详解(建议收藏!)

    目录 前言 match 匹配字符串 单字符匹配 . 匹配任意一个字符 \d 匹配数字 \D 匹配非数字 \S 匹配非空白 \w 匹配单词.字符,如大小写字母,数字,_ 下划线 \W 匹配非单词字符 [ ] 匹配[ ]中列举的字符 表示数量 * 出现0次或无数次 + 至少出现一次 ? 1次或则0次 {m,} 至少出现m次 匹配边界 $ 匹配结尾字符 ^ 匹配开头字符 \b 匹配一个单词的边界 \B 匹配非单词边界 匹配分组 | 匹配左右任意一个表达式 (ab) 将括号中字符作为一个分组 searc

  • Python基础之模块详解

    目录 一.模块 1.模块的四种形式 2.为什么要用模块? 二.如何用模块 1.import 模块名 导入重命名:smt变量指向span模块的名称空间 导入多个模块 2.from 模块名 import 具体的函数 rom … import * 语句:导入文件内所有的功能: 3.循环导入 4.dir() 函数 三.模块搜索路径 1.导入模块时查找模块的顺序 1.先从内存中已经导入的模块中寻找 2.内置的模块 3.环境变量sys.path中找(强调:sys.path的第一个值是当前执行文件的所在的文件

  • python中os模块详解

    os模块提供了对目录或者文件的新建/删除/查看文件属性,还提供了对文件以及目录的路径操作.比如说:绝对路径,父目录-- os.sep可以取代操作系统特定的路径分隔符.windows下为 "\\",Linux下为"/" os.linesep字符串给出当前平台使用的行终止符.例如,Windows使用'\r\n',Linux使用'\n'而Mac使用'\r'. os.pathsep 输出用于分割文件路径的字符串,系统使用此字符来分割搜索路径(像PATH),例如POSIX上'

  • python队列queue模块详解

    队列queue 多应用在多线程应用中,多线程访问共享变量.对于多线程而言,访问共享变量时,队列queue是线程安全的.从queue队列的具体实现中,可以看出queue使用了1个线程互斥锁(pthread.Lock()),以及3个条件标量(pthread.condition()),来保证了线程安全. queue队列的互斥锁和条件变量,可以参考另一篇文章:python线程中同步锁 queue的用法如下: import Queque a=[1,2,3] device_que=Queque.queue(

  • Python之re模块详解

    目录 Python--re模块 简介 预定义字符 特殊字符 反斜杠问题 匹配方法 总结 Python--re模块 简介 定义:re模块称为正则表达式: 作用:创建一个"规则表达式",用于验证和查找符合规则的文本,广泛用于各种搜索引擎.账户密码的验证等: 预定义字符 """ \d 匹配所有的十进制数字 0-9 \D 匹配所有的非数字,包含下划线 \s 匹配所有空白字符(空格.TAB等) \S 匹配所有非空白字符,包含下划线 \w 匹配所有字母.汉字.数字 a

  • Python面向对象之模块详解

    目录 1.1 导入模块 1.1.1 import 模块名 1.1.2 from 模块名 import 功能名 1.1.3 from -import* 1.1.4 as 定义别名 1.2 制作模块 1.2.1 定义模块 1.2.2 测试模块 1.2.3 外部调用 1.3 模块定位顺序 1.4 all 总结 1.1 导入模块 import 模块名 form 模块名import 功能名 form 模块名 import * import 模块名 as 别名 import 模块名 import 功能名 a

随机推荐