东莞门户网站建设方案,郑州网站建设模板制作,哪里有网页设计培训,电子印章在线制作文章目录 学习目标一、正则表达式的介绍二、正则查找相关的方法三、re.Match类四、re.compile 方法的使用五、正则修饰符六、正则表达式6.1 正则表达式规则6.2 标点符号的特殊含义6.3 字母的特殊含义七、正则替换八、贪婪模式和非贪婪模式学习目标 能够描述什么是正则表达式能够… 文章目录 学习目标一、正则表达式的介绍二、正则查找相关的方法三、re.Match类四、re.compile 方法的使用五、正则修饰符六、正则表达式6.1 正则表达式规则6.2 标点符号的特殊含义6.3 字母的特殊含义 七、正则替换八、贪婪模式和非贪婪模式 学习目标
能够描述什么是正则表达式能够使用re模块查找指定正则格式的字符串能够说出match,search,findall和finditer方法的区别能够说出re.Match类的常见属性和方法作用能够说出常见的正则修饰符能够说出常见的正则表达模式 单字修饰符限定修饰符边界修饰符 能够说出贪婪模式和非贪婪模式的区别能使用非贪婪模式进行正则匹配一、正则表达式的介绍
正则表达式是一个特殊的字符序列,计算机科学的一个概念。通常被用来检索、替换哪些符合某个模式(规则)的文本许多程序设计语言都支持利用正则表达式进行字符串操作。在Python中需要通过正则表达式对字符串进行匹配的时候,可以使用 re模块。re模块使用 Python 语言拥有全部的正则表达式功能特点:灵活性、逻辑性和功能性非常强可以迅速地用极简单的方式达到字符串的复杂控制对于刚接触的人来说,比较晦涩难懂# 用来处理字符串,对字符串进行检索和替换的
# 1. 查找 2. 替换
import rex = 'hello\\nworld' # hello\nworld
# 在正则表达式里,如果想要匹配一个 \ 需要使用 \\\\# 第一个参数就是正则匹配规则
# 第二个参数表示需要匹配的字符串# m = re.search('\\\\', x) # match 和 search# 还可以在字符串前加入一个 r,\\ 就表示 \
m = re.search(r'\\', x)# search 和 match 方法的执行结果是一个Match类型的对象
print(m) # re.Match object;span=(5, 6), match='\\'
二、正则查找相关的方法
# 查找相关的方法
# match 和 search:
# 共同点:1. 只对字符串查询一次 2. 返回值类型都是 re.Match 类型的对象(没有匹配上则返回None)
# 不同点:match 是从头开始匹配,一旦匹配失败,就会方法返回 None;search是在整个字符串里匹配
查找字符串,返回结果是一个 re.Match 对象# finditer:查找到所有的匹配数据放到一个可迭代对象里(各数据是 re.Match 对象)# findall:把查找到的所有的字符串放到一个列表里# fullmatch:完整匹配,字符串需要完全满足正则规则才会有结果,否则就是Nonefrom connections.adc import Iterable
import re
m1 = re.match(r'good','hello world good morning')
print(m1) # Nonem2 = re.search(r'hello','hello world good morning')
print(m2) # re.Match object;span=(0, 5), match='hello'# finditer 返回的结果是一个可迭代对象
# 可迭代对象里的数据是匹配到的所有结果,是一个 re.Match 类型的对象
m3 = re.finditer(r'x','fhquhfnxpkmapixok1i')
print(isinstance(m3, Iterable)) # Truefor t in m3:print(t) m4 = re.findall(r'x\d+','xqofho1cxhjax123x14')
print(m4) # 以x开头且带数字元素组成的列表m5 = re.fullmatch(r'hello world', 'hello world')三、re.Match类
当我们调用 re.match 方法、re.search 方法、或者对 re.finditer 方法的结果进行迭代时,拿到的数据类型都是 re.Match 对象
import rem = re.search(r'm,'sdafhiwmkom')# 匹配到的结果字符串的开始和结束下标
print(m.span()) # 使用group方法可以获取匹配的字符串结果
# group 可以传参,表示第 n 个分组
print(m.group()) # m
print(m.group(0)) # m
print(m.group(1)) # IndexError:no such group# group方法表示正则表达式的分组
# 1. 在正则表达式里使用()表示一个分组
# 2. 如果没有分组,默认只有一组