25、正則表達式
阿新 • • 發佈:2017-06-26
換行 all group tro search 十進制數 [] 找對象 正則表達
一 正則表達式
1 功能:字符串的模糊匹配查詢
"hello".find("yuan\n egon\nalex")
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("131\d*","1312312321,412341,131,32424,131234213423,123415234123324111,123412341234,12341234") print(ret)
+ :(1,無窮)
import re ret=re.findall("131\d+","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 匹配任何空白字符; 它相當於類 [ \t\n\r\f\v]。 \S 匹配任何非空白字符; 它相當於類 [^ \t\n\r\f\v]。 \w 匹配任何字母數字字符; 它相當於類 [a-zA-Z0-9_]。 \W 匹配任何非字母數字字符; 它相當於類 [^a-zA-Z0-9_] \b 匹配一個特殊字符邊界,比如空格 ,&,#等
讓我們看一下\b的應用:
ret=re.findall(r‘I\b‘,‘I am LIST‘) print(ret)#[‘I‘]
接下來我們試著匹配下“abc\le”中的‘c\l’:
import re ret=re.findall(‘c\l‘,‘abc\le‘) print(ret)#[] ret=re.findall(‘c\\l‘,‘abc\le‘) print(ret)#[] ret=re.findall(‘c\\\\l‘,‘abc\le‘) print(ret)#[] ret=re.findall(r‘c\\l‘,‘abc\le‘) print(ret)#[] # \b是特殊符號所以,‘abc\be‘前面需要加r ret=re.findall(r‘c\\b‘,r‘abc\be‘) 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‘]
25、正則表達式