findall
查找所有匹配项,返回的是一个列表
import re
re.findall("\d+", "alex12lucy22")
# ["12", "22"]
search
只返回第一次匹配项,返回一个group对象
import re
re.search("\d+", "alex12lucy22").group()
# "12"
match
只在开始位置匹配一次
import re
re.match("\d+", "alex12lucy22").group()
#
re.match("[a-z]+", "alex12lucy22").group()
# "alex"
split
import re
re.split("[ab]", "ahighabwest")
# 按照a分割成 ['', 'high', 'bwest']
# 再按照b分割成['', 'high', '', 'west']
# ['', 'high', '', 'west']
sub
字符串替换
import re
re.sub("\d+", "dog", "You 666!")
# 'You dog!'
import re
re.sub("\d+", "dog", "You 666 999!")
# 'You dog dog!'
re.sub("\d+", "dog", "You 666 999!", 1)
# 'You dog 999!'
subn
返回一个元组,包括替换后的字符串和替换次数
import re
re.subn("\d+", "dog", "You 666 999!", 1)
# ('You dog 999!', 1)
compile
一个正则表达式方便多次使用
import re
reg = re.compile("\d+")
reg.search("lucy22cuci19")
# <re.Match object; span=(4, 6), match='22'>
reg.search("lucy22cuci19").group()
# '22'
reg.search("wanjia29xifeng36")
# <re.Match object; span=(6, 8), match='29'>
reg.search("wanjia29xifeng36").group()
# '29'
finditer
返回一个遍历器对象
import re
arr = re.finditer("\d+", "lucy22cuci19")
next(arr).group()
# '22'