IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> Python正则表达式 -> 正文阅读

[Python知识库]Python正则表达式

导入模块

import re

常用函数

匹配开头满足条件的字符
ret=re.match("c","ccc")
print(ret.group()) 
# return: c

ret=re.match("c","acc")
print(ret.group()) 
# return: AttributeError
匹配满足条件的字符
ret=re.search("c","acb")
print(ret.group()) # return: c

"""
re.match和re.search函数的区别在于:
re.match函数仅匹配字符串的开头,如果不满足条件则返回None;
re.search函数会匹配整个字符串
"""
分组
txt="book price is $9,pen price is $8."
ret=re.search(".+(\$\d+).+(\$\d+)",txt)
print(ret.group()) # book price is $9,pen price is $8
print(ret.group(1)) # $9
print(ret.group(2)) # $8
查找所有满足条件
ret=re.findall("abc","abc,abc,abc") # 返回一个list
print(ret) 
# return: ['abc', 'abc', 'abc']
根据规则替换其他字符串
ret=re.sub("\d+?","n","123")
print(ret)
# return: nnn
根据规则切割字符串
ret=re.split('\d+',"aaa11bbb33e")
print(ret)
# return: ['aaa', 'bbb', 'e']
提前编译正则表达式
r=re.compile("\d+\.?\d+") # 提前编译
ret=re.search(r,"book price is 10.32 yuan")
print(ret.group())
正则表达式添加注释
r = re.compile(
    """
\d+ # 整数
\.? # 小数点
\d+ # 小数
"""
    , re.VERBOSE)

ret = re.search("""
\d+ # 整数
\.? # 小数点
\d+ # 小数
""", "book price is 10.32 yuan",re.VERBOSE)

基础语法

限定符

匹配1个或多个表达式
ret=re.match('q+',"qqqt")
# return: qqq
# 如果不存在匹配的字符,会产生AttributeError
匹配0个或多个表达式
ret=re.match('q*',"aqqqq")
# return: 
匹配0个或1个表达式
ret=re.match('q?',"qqq")
# return: q
匹配n个字符
ret=re.match('\d{3}',"123456")	# {n}
# return: 123
匹配n-m个字符
ret=re.match('\d{1,3}',"123456") # {min,max}
# return: 123 [优先满足max]

元字符

匹配任一字符串
ret=re.match('q',"qwer")
# return: q
匹配任意字符(’\n’除外)
ret=re.match('.+',"qwer\nt")	# .
# return: qwer
匹配任意的数字
ret=re.match('\d+',"13455erw")	# \d
# return: 13455
匹配任意的非数字
ret=re.match('\D+',".!~132")	# \D
# return: .!~
匹配空白字符(\n \t \r 空格)
ret=re.match('\s',"\n111")	# \s
print("$$$"+ret.group()+"$$$")
"""
return:
$$$
$$$
""" 
匹配非空白字符
ret=re.match('\S+',"11")	# \S
# return: 11
匹配[a-z]和[A-Z]、数字和下划线(Python定义变量的规则)
ret=re.match('\w+',"azAK_\nt")	# \w
print(ret.group()+"$$$")
# return: azAK_$$$
匹配除[a-z,A-Z,0-9,_ ]外的字符
ret=re.match('\W+',"\n\t123")	# \W
print("$$$"+ret.group()+"$$$")
"""
return: 
$$$
	$$$
"""
组合匹配
# 只要满足任意规则
ret=re.match('[\da-z]+',"132skLI~")	# []
# return: 132sk
取反匹配 | 行首字符 | 结尾字符
# 取反匹配
ret=re.match('[^\d]+',"abc~1")  # ^
# return: abc~

# 行首字符
ret=re.search("^abc","abcd") # 等同于re.search("abc","abcd")
# return: abc

# 结尾字符
ret=re.search("abc$","iiiabc")
# return: abc

# 匹配空字符
ret=re.search("^$","")	# 匹配以空字符开头和空字符结尾
# return: ""
匹配多个字符串或表达式
ret=re.search("ftp|http|https","https://edu.csdn.net/")
# return: http 按顺序进行匹配

贪婪模式和非贪婪模式

html=html = '<div class="navigation"><li<ahref="https://pass">账号设置</a></li></div> '

# 贪婪模式 
ret=re.search("<.+>",html) [会将开头出现的<和结尾出现的>相互匹配]
print(ret.group())
# return: <div class="navigation"><li<ahref="https://pass">账号设置</a></li></div>

# 非贪婪模式
ret=re.search("<.+?>",html) [匹配第一个出现的<第一个出现的>]
print(ret.group())
# return: <div class="navigation">

转义字符

Python中的转义字符
txt=r"This is \n" # 转义字符r
# return: This is \n
正则表达式的转义字符
ret=re.findall("a\*+","bca* lkfa*") # 匹配a*
# return: ['a*', 'a*']
原生字符串和正则表达式
ret=re.search("\\\\c","abc\c")
# return: \c

正则表达式的字符串解析规则:

  1. 先将字符串在Python语言层面中进行解析
  2. 将得到的结果再放到正则表达式层面中进行解析
\\\\c -->[Python语言层面] \\c -->[正则表达式层面] \c

笔记下载

https://download.csdn.net/download/weixin_45564816/85052061
  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-04-01 00:00:16  更:2022-04-01 00:02:36 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 21:08:37-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码