一 正则表达式
1 功能:字符串的模糊匹配查询
"hello".find("yuan egon alex")
2 元字符
re.findall('查找对象','内容')----匹配出所有条件的元素
元字符包括:. ^ $ * + ? { } [ ] | ( )
. :除换行符以外的任意“一个”符号
ret=re.findall("李.","李杰,李刚,王超,占山") print(ret)
^ :只匹配字符串开始的位置
import re ret=re.findall("^李.","yuan李杰,李刚,王超,占山,李莲英") print(ret)
$ :只匹配字符串最后一个(末尾)位置
import re ret=re.findall("y..n$","yabn李杰,李刚,王超,占山,李莲英") print(ret)
重复元字符
* :(0,无穷)
import re ret=re.findall("131d*","1312312321,412341,131,32424,131234213423,123415234123324111,123412341234,12341234") print(ret)
+ :(1,无穷)
import re ret=re.findall("131d+","1312312321,412341,131,32424,131234213423,123415234123324111,123412341234,12341234") print(ret)
? :(0,1)
import re ret=re.findall("-?d+","131,41,-11,12,-4") print(ret)
{} :指定次数
import re ret=re.findall("d{18}","12312321,412341,32424,1234213423,123415234123324111,123412341234,12341234") print(ret)
二 转义符
1 反斜杠后边跟元字符去除特殊功能,比如
2、反斜杠后边跟普通字符实现特殊功能,比如d
d 匹配任何十进制数; 它相当于类 [0-9]。 D 匹配任何非数字字符; 它相当于类 [^0-9]。 s 匹配任何空白字符; 它相当于类 [ fv]。 S 匹配任何非空白字符; 它相当于类 [^ fv]。 w 匹配任何字母数字字符; 它相当于类 [a-zA-Z0-9_]。 W 匹配任何非字母数字字符; 它相当于类 [^a-zA-Z0-9_] 匹配一个特殊字符边界,比如空格 ,&,#等
让我们看一下的应用:
ret=re.findall(r'I','I am LIST') print(ret)#['I']
接下来我们试着匹配下“abcle”中的‘cl’:
import re ret=re.findall('cl','abcle') print(ret)#[] ret=re.findall('c\l','abcle') print(ret)#[] ret=re.findall('c\\l','abcle') print(ret)#[] ret=re.findall(r'c\l','abcle') print(ret)#[] # 是特殊符号所以,'abce'前面需要加r ret=re.findall(r'c\b',r'abce') print(ret)#[]
分组()
m = re.findall(r'(ad)+', 'add') print(m) ret=re.search('(?P<id>d{2})/(?P<name>w{3})','23/com') print(ret.group())#23/com print(ret.group('id'))#23
元字符 |
ret=re.search('(ab)|d','rabhdg8sd') print(ret.group())#ab
字符集【】
#--------------------------------------------字符集[] ret=re.findall('a[bc]d','acd') print(ret)#['acd'] ret=re.findall('[a-z]','acd') print(ret)#['a', 'c', 'd'] ret=re.findall('[.*+]','a.cd+') print(ret)#['.', '+'] #在字符集里有功能的符号: - ^ ret=re.findall('[1-9]','45dha3') print(ret)#['4', '5', '3'] ret=re.findall('[^ab]','45bdha3') print(ret)#['4', '5', 'd', 'h', '3'] ret=re.findall('[d]','45bdha3') print(ret)#['4', '5', '3']