Python的re模块中还有两个函数:
match
匹配的特征是从字符串的开始去匹配
search
搜索整个字符串,直到它找到第一个满足正则表达式的结果,然后就将这个匹配的结果给返回回来。
先看下match
匹配
import re
# 找到所有的数字
s = 'D2DASD13S'
r = re.match('\d',s)
print(r)
-------------------------
输出: None
这时候match
没有匹配到任何值,这是因为match
匹配的特征是从字符串的开始去匹配。
将s
字符串的第一个字符串去掉,就以数字开头试试看:
import re
s = '2DASD13S'
r = re.match('\d',s)
print(r)
-------------------------------------
输出:
<_sre.SRE_Match object; span=(0, 1), match='2'>
这时候match
就能找到值了,返回的是一个对象。print(r.group())
就能打印出匹配结果2
来。
再看下search
匹配
import re
s = 'D2DASD13S'
r2 = re.search('\d',s)
print(r2)
----------------------------------------
输出:
<_sre.SRE_Match object; span=(1, 2), match='2'>
用search
能匹配到值,返回的也是一个对象。search
的特征是搜索整个字符串,直到它找到第一个满足正则表达式的结果,然后就将这个匹配的结果给返回回来。print(r2.group())
就能打印出结果2
。
先回顾下findall
匹配
import re
s = 'D2DASD13S'
r2 = re.findall('\d',s)
print(r2)
----------------------------------------
输出:
['2', '1', '3']