正则表达式的编译—compile()函数
在模式匹配发生之前,正则表达式模式必须编译成正则表达式对象,由于正则表达式在执行过程中将进行多次比较操作,因此强烈建议使用预编译,既然正则表达式的编译是必须得,那么使用预编译来提升性能无疑是明智之举
re.compile(pattern,flags)
标记有:
re.I re.M re.L re.S re.X
'r’是防止字符转被义的
\tt
t
结果:
['010-12345678']
010-12345678
s = "This and that."
pattern1 = r"(th\w+) and (th\w+)"
pattern1_com = re.compile(pattern1,re.I)
print(pattern1_com.findall(s))
print(pattern1_com.match(s).group())
结果:
[('This', 'that')]
This and that
sub() 和subn() 搜索替换
搜索到之后进行某种形式的替换
subn只是还返回一个替换总数而已
ll = re.sub("X","Mr. Smith","atten:X\nDear X\n")
print(ll)
ll = re.subn("X","Mr. Smith","atten:X\nDear X\n")
print(ll)
ll = re.sub("[ae]","K","abcdef")
print(ll)
ll = re.subn("[ae]","K","abcdefgha")
print(ll)