import re
#模式修正符
‘’’
I 匹配时忽略大小写
M 多行匹配
L 本地化识别匹配
U unicode
S 让.匹配包括换行
‘’’
string = “Python”
pat = “pyt”
result = re.search(pat,string)
print(result)
‘’’
None
‘’’
string = “Python”
pat = “pyt”
result = re.search(pat,string,re.I) #模式修正符 就是在加一个参数
print(result)
‘’’
<re.Match object; span=(0, 3), match=‘Pyt’>
‘’’
#贪婪模式与懒惰模式
‘’’
贪婪模式的核心就是尽可能多的匹配,而懒惰模式的核心点就是尽可能少的匹配
‘’’
#贪婪模式
string = “Pythony”
pat = “p.*y”
result = re.search(pat,string,re.I) #默认 就是 贪婪模式
print(result)
‘’’
<re.Match object; span=(0, 7), match=‘Pythony’>
‘’’
#懒惰模式
string = “Pythony”
pat = “p.*?y” #懒惰模式 就是 加一个 ?
result = re.search(pat,string,re.I)
print(result)
‘’’
<re.Match object; span=(0, 3), match=‘Poy’>
‘’’
#正则表达式函数
‘’’
re.match() 从头开始匹配
re.search() 可以从任意一个地方去匹配
re.sub() 自己了解
‘’’
string = “Pythony”
pat = “o.*?y” #懒惰模式 就是 加一个 ?
result = re.match(pat,string,re.I)
print(result)
‘’’
None
‘’’
string = “Pythony”
pat = “p.*?y” #懒惰模式 就是 加一个 ?
result = re.match(pat,string,re.I)
print(result)
‘’’
<re.Match object; span=(0, 2), match=‘Py’>
‘’’
#全局匹配函数:提取所有满足格式的字符
‘’’
格式:
re.compile(正则表达式).findall(数据)
re.compile(pat).findall(string)
‘’’
string = “Pythpaypiypmpony”
pat = “p.*?y”
result = re.compile(pat).findall(string)
print(result)
‘’’
[‘pay’, ‘piy’, ‘pmpony’]
‘’’
string = “Pythpaypiypmpony”
pat = “p.*?y”
result = re.search(pat,string,re.I)
print(result)
‘’’
<re.Match object; span=(0, 2), match=‘Py’>
‘’’