import re#导入
pattern='\d\.\d+'#0-9 +是限定符,+ 0-9出现一次或多次
s='I study Python 3.10 '#待匹配字符串
match=re.match(pattern,s,re.I)#re.I忽略大小写
print(match)#因为match是从头开始匹配的,匹配到第一个,显然不是,所以直接none
s2='3.10 Python I study it'
match2=re.match(pattern,s2,re.I)
print(match2)
print('匹配值的起始位置:',match2.start())
print('匹配值的结束位置:',match2.end())
print('匹配区间的位置元素:',match2.span())
print('待匹配的字符串::',match2.string)
print('匹配的数据:',match2.group())
输出结果:
None
<re.Match object; span=(0, 4), match='3.10'>
匹配值的起始位置: 0
匹配值的结束位置: 4
匹配区间的位置元素: (0, 4)
待匹配的字符串:: 3.10 Python I study it
匹配的数据: 3.10
re.search
py复制代码
import re#导入
pattern='\d\.\d+'(#0-9 +是限定符,+ 0-9出现一次或多次)这是规则pattern
s='I study Python 3.10 but i love 2.90 '#待匹配字符串
match=re.search(pattern,s,re.I)#re.I忽略大小写,search是在整个字符串中查找,找到第一个就直接输出,剩下的都不管
print(match)#如果没找到就输出none
print(match.group())
输出结果:
<re.Match object; span=(15, 19), match='3.10'>
3.10
re.findall
py复制代码
import re#导入
pattern='\d\.\d+'#0-9 +是限定符,+ 0-9出现一次或多次
s='I study Python 3.10 but i love 2.90 '#待匹配字符串
list=re.findall(pattern,s,re.I)#re.I忽略大小写,findall是在整个字符串中查找,找到所有的符合值,然后以列表的方式输出
print(list)
输出结果:
['3.10', '2.90']