正则表达式比较繁琐,但是有相当有用。泛泛地学很难精通。必须掰开了一点一点的学习,效果才会更好。所以我设定的学习思路是:总结出python正则表达式应用的几个函数,然后通过一次练习一个到几个匹配模式,慢慢地掌握它们。到年底吧,把正则表达式练得比较熟悉。这篇文章两个目的。一是掌握‘\d+’这一正则表达式,二是总结出练习套路,即常用的几个函数,不断利用这几个函数进行练习。最终熟悉正则表达式。当然,在这个过程中,对python的re模块也就比较熟悉了。
正则表达式:'\d+':'\d'表示[0-9]的数字。'+'表示匹配前一个字符1次或无限次。'\d+'表示匹配一个数字或多个数字。
下面是练习的套路:
import re
str='one0bone1cone2done3gone4hone5lone6mone7none8pone9rone10sone11tone12zone13'
#compile()为编译正则表达式模式,返回一个对象的模式。
p=re.compile(r'\d+')
#获取字符串中所有匹配的字符串,返回一个列表。
mylist=p.findall(str)
print(" ".join(mylist))
#按照匹配模式分割字符串成子串后返回列表。
subs=re.split(p,str)
for sub in subs:
print(sub)
#finditer()顺序返回每一个匹配结果
iter=re.finditer(p,str)
for i in iter:
print(i.group())
print(i.span())
#替换模式字符串
#格式:sub(pattern,repl,string,count)
#pattern:匹配模式
#repl:替换项
#string:要替换的字符串
#count:替换个数,默认全部替换
print(re.sub(p,' ',str))