一、元字符
二、限定符
三、re 模板
1、match() 函数:
import re # 导入
pattern = r'\d\.\d+' # +限定符,\d 0-9数字出现1次或多次
s='I study Python 3.11 every day' # 待匹配字符串
match=re.match(pattern,s,re.I)
print(match)
# 输出:None
s2='3.11Python I study every day'
match2=re.match(pattern,s2)
print(match2)
# 输出:<re.Match object; span=(0, 4), match='3.11'>
print('匹配值的起始位置:',match2.start())
# 输出:匹配值的起始位置: 0
print('匹配值的结束位置:',match2.end())
# 输出:匹配值的结束位置: 4
print('匹配区间的位置元素:',match2.span())
# 输出:匹配区间的位置元素: (0, 4)
print('待匹配的字符串:',match2.string)
# 输出:待匹配的字符串: 3.11Python I study every day
print('匹配的数据:',match2.group())
# 输出:匹配的数据: 3.11
2、search() 函数:
import re
pattern=r'\d\.\d+'
s='I study Python3.11 every day Python2.7 I love you'
match=re.search(pattern,s)
s2='4.10 Python I study every day'
match2=re.search(pattern,s2)
s3='I study Python every day'
match3=re.search(pattern,s3)
print(match)
# 输出:<re.Match object; span=(14, 18), match='3.11'>
print(match2)
# 输出:<re.Match object; span=(0, 4), match='4.10'>
print(match3)
# 输出:None
print(match.group())
# 输出:3.11
print(match2.group())
# 输出:4.10
3、findall() 函数:
import re # 导入
pattern = r'\d\.\d+' # +限定符,\d 0-9数字出现1次或多次
s = 'I study Python3.11 every day Python2.7 I love you'
s2 = '4.10 Python I study every day'
s3 = 'I study Python every day'
lst = re.findall(pattern,s)
lst2 = re.findall(pattern,s2)
lst3 = re.findall(pattern,s3)
print(lst)
# 输出:['3.11', '2.7']
print(lst2)
# 输出:['4.10']
print(lst3)
# 输出:[]
4、sub() 函数:
import re
pattern='黑客|破解|反爬'
s='我想学习Python,想破解一些VIP视频,Python可以实现无底线反爬吗?'
new_s=re.sub(pattern,'XXX',s)
print(new_s)
# 输出:我想学习Python,想XXX一些VIP视频,Python可以实现无底线XXX吗?
5、split() 函数:
import re
s2='https://www.baidu.com/s?wd=ysj&rsv_spt=1'
pattern2='[?|&]'
lst=re.split(pattern2,s2)
print(lst)
# 输出:['https://www.baidu.com/s', 'wd=ysj', 'rsv_spt=1']
微语:你未必万丈光芒,但始终温暖有光。