正則表達式的總結
在Python中執行正則表達式時,需要導入import re
正則表達式就是:定義一個規則,用另外一個字符串,來匹配或者檢驗是否滿足這個規則;
正則的幾種方法:
re.match(r"正則表達式","字符串"):從左邊第一個字符開始匹配,如果前面有匹配不成功的,就算後面有可以匹配的,也是匹配失敗;如果匹配失敗會返回None
re.search(r"正則表達式","字符串"):從左邊開始搜尋,如果沒有成功,會一直往下匹配,直到匹配成功為止,除非整個字符都沒有匹配成功的部分。如果匹配的時候有多處可以成功,會匹配從左到右邊第一個匹配內容取出。。
re.findall(r"規則","字符串"),查找字符串所有匹配成功的
re.sub(r"規則","要替換成的字符串","字符串")將匹配到的數據進程替換
re.split(r"規則","字符串")根據匹配進行切割字符串
正則中表示單個字符:
.:任意一個字符(\\n)
\\d:匹配任意一個數字等價[0-9]
\\D:匹配非數字,例如:a,*,$,@,!
\\w:匹配單個字符,a-zA-Z0-9_ 等價[a-zA-Z0-9_]
\\W:非單個字符;例如:&,%,-,+
\\s:空白字符,空格,\\t \\n \\r
\\S:非空白,例如:a,8,$;
正則中表示字符數量:
*:前面的字符出現0次或者無限次數,即可有可無。例如 \\d* ""
+:前面的字符出現1次或者無限次數,即至少出現1次。.+ "1" ,"a"
?:前面的字符要麽出現0次要麽出現1次,即要麽出現,要麽不出現。\\w? ""
{m}:前面的字符出現m次;例如\\d{3} "99"
{m,}前面的字符至少出現m次;例如 .{3,} "#448**"
{n,m}前面的字符出現n到m次,包括n和m; \\w{2,3} "a##3"
正則中的原始字符串:
Python中字符串前面加上 r 表示原生字符串,讓我們忽略要轉義的地方。
特殊字符 \\n \\t \\r
re.match(r"\\nabc","\\nabc")
re.match(r"\\rabc","\\rabc")
re.match(r"\\rabc","\\rabc")
re.match(r"\\tabc","\\tabc")
正則中表示邊界:
$:匹配字符串結尾 "1[34578]\\d{9}$" 13511111119
^:匹配字符串開頭 "^1[34578]\\d{9}$" search() 1[34578]\\d{9} hh13511111119ccc
\\b:匹配單詞的邊界 I love you ".+\\sve\\b"
\\B:匹配非單詞的邊界 I love you ".+\\sv\\B"
正則中的匹配分組
|:匹配左右任意一個表達式 "0|100" "100"
(ab):將括號中字符串作為一個分組 "<.+><.+>(.+)" "
我是"
\\num:引用分組num匹配到的字符串 "<(.+)><.+>(.+)" \\1
(?P)分組起別名 "<(?p.+)><.+>(.+)" P是大寫的
(?P=name):引用別名為name分組匹配到的字符串
本文出自 “13369014” 博客,請務必保留此出處http://13379014.blog.51cto.com/13369014/1976894
正則表達式的總結