两者的区别在于:
re.match只匹配字符串的开始,如果字符串开始不负责正则表达式,则匹配失败,函数返回None,
但是re.search()匹配整个字符串,直到找到一个匹配
import re
value = "hello world,2015!"
value_last = re.match(r‘2015‘,value)
if value_last:
print(‘match-->‘,value_last.group())
else:
print("No match!")
value_end = re.search(r‘2015‘,value)
print(‘search-->‘,value_end.group())
输出的结果是:
No match!
search--> 2015
1.3
sub(pattern,repl,string,max=0)
替换字符串的匹配项
import re
phone = "2015-5-31 # This is my Num"
num = re.sub(r‘#.*$‘,"",phone)
print("Phone Num:",num)
num = re.sub(r‘\D‘,"",phone)
print("Phone Num:",num)
输出的结果是:
Phone Num: 2015-5-31
Phone Num: 2015531
1.4
split(pattern,string[,maxsplit])
按照能够匹配的字串将string分割后返回列表,maxsplit指定最大分割次数
import re
1.6
finditer(pattern,string[,flags])
返回一个能顺序访问的迭代器
import re
value = "1.one2.two3.three"
value_last = re.finditer(r‘\d.‘,value)
for x in value_last:
print(x.group())
返回的结果是:
1.
2.
3.
如果你对迭代器不了解的话请翻阅我之前的博客。