< a href="https://github.com/%E5%B0%8F%E7%9A%AE%E6%B5%A9"> Fork me on GitHub

正则

python之re---正则表达式

python之re---正则表达式

re就是从字符串中获取想要的内容

re.findall

练习
s = "alex,meet,ave_j"
import re
print(re.findall('ee',s))  #从左往右找,找出对应的字符

元字符

\w 匹配出出特殊符号的字符串,如中文,字母,下划线,数字 ***

s = "alex,meet,ave_j"
re.findall("\w",s)
结果为['a','l','e','x','m','e','e','t','a','v','e','_','j']

\W 匹配非字母字符串(包含中文)或者下划线,数字

\s 匹配任意的空白符(空格)

\S匹配非空格(包含特殊符号)(包括中文),数字,下划线 ***

\d 匹配数字

\D 匹配非数字

\A 匹配以什么开头

^ 匹配以什么开头 findall('^a',s)

\Z 匹配以什么结尾 re.findall('!\Z',s)

$ 匹配以什么结尾re.findall('!$ ',s)

以什么开头,以什么结尾 django

. 代表任意字符

re.findall('.',s)   匹配到字符串中的所有字符(换行和制表符除外)

re.findall('.',s,re.DOTALL) 这样就可以匹配到换行符

\n \t

[] 匹配括号中的内容

练习
re.findall("[0-9]",s)    匹配字符中的0-9字符串
re.findall("[0-9a-zA-Z]",s)   匹配0-9,a-z,A-Z的字符串
re.findall("[^0-9]",s)   匹配取反,匹配非0-9字符串
re.findall("[^.]",s)     匹配非.点所有字符串 在括号中.只是字符串点
不代表任意字符

*匹配0-n 也就是匹配字符e*0-e*n个字符 贪婪匹配

+ 匹配1-n个字符串 re.findall("e+",s) 匹配结果 1-n贪婪匹配

?匹配左边0-1个 如re.finadall("e?",s) 匹配结果 0-1 非贪婪

精确匹配

re.finadall("e{2}",s) 匹配两个e,也就是匹配字符串中的ee

re.findall("e{0,3}",s) 匹配字符传中,0-3个e的字符串,匹配顺序先匹配3个的,再匹配两个的,依次往下

| 或的意思

练习
re.findall("a|e",s)   #匹配字符串中e或者a的一个字符串

() 分组

练习
re.findall("l(e)a",s)   #匹配满足前面是l,后面是a的e
re.findall("e(?:e)e",s)  #匹配到前面是e,后面也是e的e,匹配结果带上()括号前后的内容

 

 

posted @ 2020-02-10 23:38  赌徒!  阅读(151)  评论(0编辑  收藏  举报