python正则group()的用法—正则提取括号内以及其他符号内内容

  • python正则提取括号内以及其他符号内内容,我以前学过一点点正则,但是学的不深,用的正则也是最笨的正则方法,只会group(0).

  • 然而,我今天又看了下正则,发现正则的提取确实好用。无论爬虫还是文本分析都很方便。可以 解决特定的需求。

  • 举个例子,在以前我提取dsgs(gad)gdagda的时候,正常有两种方式:一个是字符串分割,分割几次就能找到想要的内容一般,第二是正则,但是我的是假的正则,我以前的正则是先匹配(gad)字符串,然后再写规则匹配gad的规则二次才能完成提取。但是如果字符串较大往往耗时费力,纯粹的体力活动。并且。我以前无论啥正则,都说group(0).我一直奇怪为啥一直group(0)呢.

  • 直到今天,我的疑惑才解开,才发现正则的强大之处。因为我今天要匹配处理的字符串的格式为:"2018-05-05 15:55:40 2班某某(1315426911)"这样一个字符串,我想提取括号里面的内容。经过各方百度,终于找到合适的方法。我先把代码和结果分享给大家:

import re
pattern=re.compile(r'\d*-\d*-\d*.*')
pattern2=re.compile(r'(\()(.*?)(\))')
pattern3=re.compile(r'\((.*)\)')
string="2018-05-05 15:55:40 2班某某(1315426911)"

str1=pattern.search(string)
print(str1.group(0))

str2=pattern2.search(string)
print('group(0):',str2.group(0))
print('group(1):',str2.group(1))
print('group(2):',str2.group(2))
print('group(3):',str2.group(3))

str3=pattern3.search(string)
print('group(0):',str3.group(0))
print('group(1):',str3.group(1))

输出的结果为:

2018-05-05 15:55:40 2班某某(1315426911)
group(0): (1315426911)
group(1): (
group(2): 1315426911
group(3): )
group(0): (1315426911)
group(1): 1315426911

对于第一个pattern就是正常匹配,不做详解。
对于第二个。就是把你想获得的内容用()封装起来。然后括号从左到右就是group(id)

在这里插入图片描述
第三个就不用说啦,因为只有一个括号,所以只有group(1).
值得注意的是注意真正的字符串括号"(“和”)"加斜杠转义。如果不想转义,还可以这么写:pattern3=re.compile(r’[ ( ] (.*)[ ) ]’)。

同样,在爬虫或者遇到其他文本分析问题时候可以采用同样方法。
其他的正则有很多大佬已经总结过,在这里就不说了(其实我也不会几个??)。如果有错误,请指正!

  • 如果对后端、爬虫、数据结构算法等感性趣欢迎关注我的个人公众号交流:bigsai
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员bigsai

喝杯咖啡压压惊!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值