正則表達式

1.經常使用語法正則表達式

 1 #正則表達式是用來匹配字符串的
 2 
 3 import re
 4 
 5 #匹配,從字符串頭開始搜索
 6 res=re.match('[a-z]+','asda213kj21jk3b12jb12')#從字符串頭開始搜索
 7 print(res.group())
 8 
 9 #匹配,無先後關係
10 res=re.search('[0-9]+','asda213kj21jk3b12jb12')#
11 print(res.group())
12 
13 #分割
14 res=re.split('[0-9]+','asda213kj21jk3b12jb12')
15 print(res)
16 
17 #替換,匹配以後替換
18 res=re.sub('[0-9]+','|','asda213kj21jk3b12jb12',count=2)#替換兩次
19 print(res)

結果:spa

2.經常使用字符3d

 1 #'.' 默認匹配除換行\n以外的任意字符,若指定flag DOTALL,則匹配任意字符
 2 res=re.match('^.+','chen123er567')
 3 print(res.group())
 4 
 5 #匹配包括換行\n以外的任意字符
 6 res=re.search('.+','1231\naHG\nhvVrsd',flags=re.S)
 7 print(res.group())
 8 
 9 #'$' 結尾
10 
11 #'+' 匹配'+'號前一個字符一次或屢次
12 res=re.search('#.+#','121#asdasd#')
13 print(res)
14 
15 res=re.search('r[a-z]+a','chenronghuaronghua123ronghua567')
16 print(res)
17 
18 #‘?’ 匹配'?'號前一個字符一次或0次
19 res=re.search('t?','taojames')
20 print(res)
21 res=re.search('t?','ttaojames')
22 print(res)
23 res=re.search('tt?','ttaojames')#總體匹配,匹配t或tt
24 print(res)
25 
26 #{m} 匹配'{m}'號前m次
27 res=re.search('[0-9]{3}','tao123ja23m123es')
28 print(res)
29 res=re.findall('[0-9]{1,3}','tao123ja23m123es')#找出全部符合的匹配,以數列方式返回,沒有group方法
30 print(res)
31 
32 #‘|’ 匹配‘|’號兩端,或
33 res=re.search('tao|Tao','tao123ja23m123es')
34 print(res)
35 
36 #‘(...)’ 分組匹配
37 res=re.search('tao{2}','taooo123ja23m123es')
38 print(res)
39 res=re.search('(tao){2}','taotao123ja23m123es')#把tao分紅一組
40 print(res)
41 res=re.search('(tao){2}(\|\|\=){3}','taotao||=||=||=123ja23m123es')
42 print(res)
43 
44 #'\A' 匹配以'\A'號後字符開頭
45 #'\Z' 匹配以'\Z'號前字符結尾
46 res=re.search('\A[0-9]+[a-z]\Z','1231a')#
47 print(res)
48 
49 #‘\d’ 匹配數字
50 #‘\D’ 匹配非數字的全部字符
51 res=re.search('\d+','1231aasd')#
52 print(res)
53 res=re.search('\D+','1231\s|aassd')#
54 print(res)
55 
56 #‘\w’ 匹配[A-Za-z0-9]
57 #‘\W’ 匹配非[A-Za-z0-9]的全部字符
58 res=re.search('\w+','1231||a\sd')#
59 print(res)
60 res=re.search('\W+','1231||a\sd')#
61 print(res)
62 
63 #‘\s’ 匹配空白字符、\t、\n、\r
64 res=re.search('\s+','12 31||a\rsd')#
65 print(res)
66 
67 #(?P<name>...) 分組匹配
68 res=re.search('(?P<id>[0-9]+)','1231tao\sd')
69 print(res)
70 print(res.groupdict())#將匹配結果字典輸出
71 res=re.search('(?P<id>[0-9]+)(?P<name>[a-z]+)','1231tao\sd')#一塊兒匹配
72 print(res)
73 print(res.groupdict())
74 
75 #匹配反斜槓
76 res=re.search(r'\\','12 31||a\\rsd')
77 print(res)
78 
79 #匹配忽略大小寫
80 res=re.search('[a-z]+','1231aHGhvVrsd',flags=re.I)
81 print(res)

結果:code

匹配身份證信息:blog

1 #將身份證號分組
2 
3 res=re.search('(?P<province>[0-9]{2})(?P<city>[0-9]{2})(?P<county>[0-9]{2})(?P<birth>[0-9]{8})(?P<id>[0-9]{4})','211421199912221234')#一塊兒匹配,
4 
5 print(res.groupdict())

結果:ci

相關文章
相關標籤/搜索
本站公眾號
   歡迎關注本站公眾號,獲取更多信息