[Python] re(正则表达式) 模块使用方法

关于正则表达式本身,就不多讲了,网上有好多教程。这里主要是讲下使用re模块中碰到的坑。。。


re.compile

把正则表达式编译为一个对象。可以选择把常用的正则表达式编译好,可以适当提高效率
举例:

pattern=re.compile(r'<a href.+?</a>')

re.findall

原来以为match是用来查找字符串中是否有目标字段的,后来发现结果怎么也出不来,再一查发现这个角色被findall承担了。
re.findall可以获取字符串中所有匹配的字符串。
举例:

p_user=re.compile(r'<a href.+?</a>')
text3='回复<a href="/n/wenmei33">@wenmei33</a>:13611060981,张艳红。圣竹园位于怀柔区北房镇,京承高速14号出口,沿101国道向密云方向前行10公里即到,是京郊“南果北种”的示范园。 //<a href="/n/wenmei33">@wenmei33</a>:怎么联系呢'
m=re.findall(p_user,text3)
for item in m:
    print(item)

得到结果为

@wenmei33
@wenmei33


re.split

可以使用re.split来分割字符串,将字符串按空格分割成一个单词列表。
举例:

text5='winter is coming'
m=re.split(r'\s+',text5)
for item in m:
    print(item)

得到结果为:

winter
is
coming


re.sub

re.sub用于替换字符串中的匹配项。举例:

text5='winter is coming'
m=re.sub(r'\s+','-',text5)
print(m)

这个例子是将字符串中的空格替换为’-‘

winter-is-coming


re.search

re.search函数会在字符串内查找,找到第一个匹配即返回,如果字符串没有匹配,则返回None。
举例:

p_face=re.compile(r'\[.+?\]')

text='这是要闹哪样?秋裤、羊毛裤、保暖裤,该穿的全穿上吧,保暖是真真的!今儿这风来头不小,大家出门注意保暖,瘦子没事就别出来了<i class="face face_1 icon_18">[偷笑]</i>第一次觉得当个胖子也是蛮好滴![江南style]'

res1=re.findall(p_face,text)
res2=re.search(p_face,text)
print(res1)
print(res2)

得到的结果如下

[‘[偷笑]’, ‘[江南style]’]
<_sre.SRE_Match object; span=(91, 95), match=’[偷笑]’>

可以看到,re.findall找到了所有匹配的字符串。而re.search 找到了第一个匹配字符串后就返回了


re.match

re.match 从字符串的开始匹配一个模式
举例:

text5='winter is coming'
m=re.match(r'(\w+)',text5).groups()
print(m)

运行结果为:

(‘winter’,)

re.match与re.search的区别:re.match只匹配字符串的开始,如果字符串开始不符合正则表达式,则匹配失败,函数返回None;而re.search匹配整个字符串,直到找到一个匹配。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值