加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

教你学会使用Python正则表达式

发布时间:2020-12-17 08:06:47 所属栏目:Python 来源:网络整理
导读:今天写爬虫偶然想到了初学正则表达式时候,看过一篇文章非常不错。检索一下还真的找到了。 re模块 re.search 经常用match = re.search(pat,str)的形式。因为有可能匹配不到,所以re.search()后面一般用if statement。 re.match re.match和re.search很相似,

今天写爬虫偶然想到了初学正则表达式时候,看过一篇文章非常不错。检索一下还真的找到了。

re模块

re.search

经常用match = re.search(pat,str)的形式。因为有可能匹配不到,所以re.search()后面一般用if statement。

re.match

re.match和re.search很相似,只是re.match是从字符串的开头开始匹配。

常用正则字符意义 a,X,9,等字符匹配自己,元字符不匹配自己,因为有特殊意义,比如 . ^ $ * + ? { }[ ] | ( ) . 英文句号,匹配任意字符,不包含'n' w 匹配'word'字符,[a-zA-Z0-9] W 匹配非'word'字符 b 匹配'word'和'non-word'之间边界 s 匹配单个whitespace字符,space,newline,return,tab,form [nrtf] S 匹配non-whitespace字符 t,n,r 匹配tab,return d 匹配数字[0-9] ^ 匹配字符串开头 $ 匹配字符串结尾 重复

‘+' 一或多次,‘*' 零或多次,‘?' 零或一次

方括号[]

[]类似于or

Square brackets can be used to indicate a set of chars,so [abc] matches 'a' or 'b' or 'c'.

Group Extraction圆括号()

有时候需要提取匹配字符的一部分,比如刚才的邮箱,我们可能需要其中的username和hostname,这时候可以用()分别把username和hostname包起来,就像r'([w.-]+)@([w.-]+)',如果匹配成功,那么pattern不改变,只是可以用match.group(1)和match.group(2)来username和hostname,match.group()结果不变。

findall and groups

()和findall()结合,如果包括一或多个group,就返回a list of tuples。

给re.search加^之后是一样的。

re.sub

re.sub(pat,replacement,str)在str里寻找和pattern匹配的字符串,然后用replacement替换。replacement可以包含1或者2来代替相应的group,然后实现局部替换。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读