189 8069 5689

python正则表达式的技巧有哪些

本篇内容介绍了“python正则表达式的技巧有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

峨眉山网站制作公司哪家好,找成都创新互联!从网页设计、网站建设、微信开发、APP开发、响应式网站建设等网站项目制作,到程序开发,运营维护。成都创新互联公司2013年成立到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选成都创新互联

最小匹配

格式

量词?

注:量词有{n,m}、?、+、*

用处

在字符串中查找符合正则表达式规则的最短子字符串。

案例

现有字符串num = ”10-3*(20-10+(-10/5)27/3/3-(-100)/(10-35))",要提取括号中的内容。

import re

num = '10-3*(20-10+(-10/5)*27/3/3-(-100)/(10-3*5))+(-5*-6)'num2 = re.findall('\(.+?\)', num)num3 = re.findall('\(.+\)', num)print(num2)print(num3)out:['(20-10+(-10/5)', '(-100)', '(10-3*5)']['(20-10+(-10/5)*27/3/3-(-100)/(10-3*5))']

上述代码中num2使用了最小匹配,而num3使用了默认的最大匹配。

请注意num2的正则表达式:

.表示匹配除了换行符之外的所有字符

+表示一个或多个

?表示最小匹配,匹配后面第一个)即返回结果。若没有这个?会匹配到最后一个)才返回结果。

分组

格式

(\w)

注:在正则表达式中一对括号包围的内容表示分组,正则表达式中可以有多个分组

用处

匹配字符串,只提取分组中的内容,非分组的内容舍弃不提取。

案例

str1 = '''
python
java
javascript
'''result1 = re.findall('<\w+>(\w+)<\w+>',str1)print(result1)result2 = re.findall('<(\w+)>\w+<\w+>',str1)print(result2)out:['python', 'java', 'javascript']['a', 'b', 'c']

从result1和result2提取内容的不同可以看到分组的妙用,分组能指定提取符合正则表达式某一段的内容。

分组隐藏

格式

(?:正则表达式)

注:在括号内以?:开头的分组,匹配到的内容会被隐藏。

另:分组隐藏和分组命名不能同时使用。

用处

当有用数据和无用数据混在一起时,只能先全取出来,然后对无用数据做分组隐藏,把有用的数据对应的正则表达式用()包起来,这样即可提取出有用数据。

案例

result1 = re.findall('1(\d)(\d)','167189')print(result1)result2 = re.findall('1(?:\d)(\d)','167189')print(result2)out:[('6', '7'), ('8', '9')]['7', '9']

分组命名

格式

(?P<名字>正则表达式)

注:?P<名称>,英文书名号内是分组的名称。

用处

分组命名在有很多段分组时对不同的分组命名,便于使用,防止混淆。

案例

str1 = 'study python every day'ret = re.search('<(?P\w+)>(?P.*?)',str1)print(ret)print(ret.group('tag'))print(ret.group('name'))out:tag
study python every day

上述案例是一个简单的示范,只有2个分组。但实际爬虫的时候经常会遇到多达10个以上的分组。在分组数量多的时候很容易混淆数据,若使用分组命名会非常方便,根据名字读取对应的数据,提高了代码可读性。

“python正则表达式的技巧有哪些”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注创新互联网站,小编将为大家输出更多高质量的实用文章!


当前名称:python正则表达式的技巧有哪些
文章URL:
http://cdxtjz.cn/article/ghijsp.html

联系我们

您好HELLO!
感谢您来到成都网站建设公司,若您有合作意向,请您为我们留言或使用以下方式联系我们, 我们将尽快给你回复,并为您提供真诚的设计服务,谢谢。
  • 电话:028- 86922220 18980695689
  • 商务合作邮箱:631063699@qq.com
  • 合作QQ: 532337155
  • 成都网站设计地址:成都市青羊区锣锅巷31号五金站写字楼6楼

小谭建站工作室

成都小谭网站建设公司拥有多年以上互联网从业经验的团队,始终保持务实的风格,以"帮助客户成功"为已任,专注于提供对客户有价值的服务。 我们已为众企业及上市公司提供专业的网站建设服务。我们不只是一家网站建设的网络公司;我们对营销、技术、管理都有自己独特见解,小谭建站采取“创意+综合+营销”一体化的方式为您提供更专业的服务!

小谭观点

相对传统的成都网站建设公司而言,小谭是互联网中的网站品牌策划,我们精于企业品牌与互联网相结合的整体战略服务。
我们始终认为,网站必须注入企业基因,真正使网站成为企业vi的一部分,让整个网站品牌策划体系变的深入而持久。