函数 |
功能描述 |
re.match(pattern,string,flags=0) | 用于从字符串的开始位置进行匹配,如果起始位置匹配成功,结果为Match对象,否则结果为None。 |
re.search(pattern,string,flags=0) | 用于在整个字符串中搜索第一个匹配的值,如果匹配成功,结果为Match对象,否则结果为None. |
re.findall(pattern,string,flags=0) | 用于整个字符串搜索所有符合正则表达式的值,结果是一个列表类型。 |
re.sub(pattern,repl,sreing,count,flags=0) | 用于实现对字符串中指定子串的替换 |
re.split(pattern,string,maxsplit,flags=0) | 字符串中的split()方法功能相同,都是分隔字符串 |
import re#导入正则表达式处理模块
pattern='\d\.\d+'
#\d————表示0~9的整数,点表示转义字符
s='i study python3.22 everyday'#匹配字符串
match=re.match(pattern,s,re.I)
# 在 Python 中,re.match(pattern, s, re.I) 表示使用正则表达式模式 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())
print('匹配值的结束位置:',match2.end())
print('匹配区间的位置元素:',match2.span())
print('待匹配的字符串:',match2.string)
print('匹配的数据:',match2.group())
# 匹配值的起始位置: 0
# 匹配值的结束位置: 4
# 匹配区间的位置元素: (0, 4)
# 待匹配的字符串: 3.11python i study every day
# 匹配的数据: 3.11
以下是search的用法,总的来说,search可以找到数都是没办法找全
pattern='\d\.\d+'
s='i study python3.11 every day python 2.7'
match=re.search(pattern,s)
s2='4.10 python i study every day'
s3='i study python every day'
match2=re.search(pattern,s2)
match3=re.search(pattern,s3)#None
print(match)
print(match2)
print(match3)
print(match.group())#3.11
print(match2.group())#4.10
#不用写match3因为match3是空字符串
findall
import re
pattern='\d\.\d+'
s='i study python3.11 every day python 2.7'
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)
print(lst2)
print(lst3)
#['3.11', '2.7']
# ['4.10']
# []
import re
pattern='黑客|破解|反爬'
s='我想学习Python反爬'
new_s=re.sub(pattern,'XXX',s)
print(new_s)
#我想学习PythonXXX
s2='https://cn.bing.com/search?q=xy'
pattern2='[?|=]'
lst=re.split(pattern2,s2)
print(lst)
#['https://cn.bing.com/search', 'q', 'xy']