码迷,mamicode.com
首页 > 其他好文 > 详细

18、正则表达式

时间:2018-01-13 14:18:37      阅读:88      评论:0      收藏:0      [点我收藏+]

标签:bubuko   条件   分割   重要   body   正则   search   match   没有   

1、findall:返回所有满足匹配条件的结果,放到列表里

  

import re
ret=re.findall(www.(?:oldboy|baidu).com,www.oldboy.com)
print(ret)

技术分享图片

findall:优先级:findall会优先把匹配结果组里内容返回,如果想要匹配结果,取消权限即可(?:取消优先级)

2、search:在整个字符串内匹配,返回第一个满足匹配条件的结果,用group显示,没匹配到调用group会报错

import re
ret=re.search(a,baabc).group()
print(ret)

技术分享图片

3、match :从头开始匹配,必须第一个字符就要满足匹配结果才能匹配的上,用group显示。没有结果返回None调用group会报错。

 

import re
ret=re.match(a,aabc).group()
print(ret)

技术分享图片

import re
ret=re.match(a,baabc).group()
print(ret)

技术分享图片

 

 

2、sub 类似字符串中的replace替换功能:(要替换的类型,替换后内容,替换的字符串,匹配的数量(替换))

import re
ret=re.sub(\d,G,djfh24su5dfdffd,2)
print(ret)

技术分享图片

3、subn:也是替换,将要替换的内容替换了,返回元祖,元祖为:(替换的结果,替换了多少次)

import re
ret=re.subn(\d,G,djfh24su5dfdffd)
print(ret)

技术分享图片

3、compile  :将正则表达式编译成一个正则表达式对象,正则表达式对象调用search,参数为待匹配的对象

import re
obj=re.compile(\d{3})
ret=obj.search(jih345njkiud234)
print(ret.group())

技术分享图片

 

4、split:分割

  split的优先级:

在匹配部分加上()之后所切出的结果是不同的,
没有()的没有保留所匹配的项,但是有()的却能够保留了匹配的项,
这个在某些需要保留匹配部分的使用过程是非常重要的。(也就是说:对于要匹配的条件来说:加不加括号是有区别的,没有括号不保留匹配的项,加上括号保留匹配的项)

import re
ret=re.split((\d+),eva34heh4hi5gg)
print(ret)

技术分享图片

import re
ret=re.split((\d),eva34heh4hi5gg)
print(ret)

技术分享图片

  这就是差距啊,差距!给你一个保护罩你就牛逼了,这个样子,现实也是这样。

18、正则表达式

标签:bubuko   条件   分割   重要   body   正则   search   match   没有   

原文地址:https://www.cnblogs.com/wyx666/p/8253098.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!