正規表示式簡介
測試字串的內的模式看字串是否符合規範,就是資料驗證
替換文字
在字串內提取子字串
正規表示式語法
一.普通字元
+符號表示,前面的乙個字元至少出現一次( >=1)
runoo+b
可以匹配runoob,runooob,runoooob等
*符號表示,前面的乙個字元可以出現0次或者一次或者多次( >= 0)
runoo*b
可以匹配runob,runoob,runooob等
?符號表示前面的乙個字元最多隻可以出現一次( 0次或者1次 )
colou?b
可以匹配colorb或者coloub
[ ]符號表示匹配中括號裡面所有的字元
[acb]
可以匹配字串absxcvb裡面a b c 字母
[^ ]符號匹配除了中括號內的所有字元
[^acb]
可以區配acvbngdsrt中除了a c b的所有字母
[a-z]符號匹配所有大寫字母
[a-z]
可以匹配ggoogleaxc中的g a x c
[a-z]符號匹配所有小寫字母
[a-z]
可以匹配googleasxc中的o o g l e
[^\r\n]符號匹配除換行符之外的任何單個字元
相當於 .
[^\r\n] = .
可以匹配asdfghj裡面的所有(除了換行)
[\s\s]可以匹配所有
\s
可以匹配所有的空白符,包括換行
\s
可以匹配所有的非空白符,不包括換行
[a-za-z0-9_]可以匹配所有字母,數字,下劃線
相當於\w
[a-za-z0-9_] = \w
二.非列印字元
\cx x必須為a-z或者a-z之一,可以匹配由x指明的控制字元
\f匹配乙個換頁符
\n匹配乙個換行符
\r匹配乙個回車符
\s匹配任何空字元,包括換行符,製表符,換頁符
\s匹配任何非空字元,不包括換行
\t匹配乙個製表符
\v匹配乙個垂直製表符
三.特殊字元
如果想要查詢這些符號,則需要轉義*
$匹配所有字串的結尾部分
()標記子表示式的開始與結束的位置
*匹配前面的乙個字元0次1次或者多次
+匹配前面的乙個字元1次或者多次
.匹配除換行符\n,\t之外的任何單字元
[ 標記乙個中括號表示式的開始
?匹配前面的子字元0次或者1次
^匹配字串的開始
,n為乙個非負整數,匹配確定的n次
o
不可以匹配boy裡面的o,但是可以匹配book裡面的oo
n為乙個非負整數,至少匹配n次
o
可以匹配book或者fooooood裡面的所有o,但是不可以匹配boy裡面的o
n,m都為非負整數,其中n<=m,表示最少匹配n最多匹配m次
五.定位符
可以讓你的正規表示式固定到行首或者行尾,正規表示式,可以出現在乙個單詞內也可以在乙個單詞的開頭,或者乙個單詞的結尾
限定符和定位符不可以同時使用
^ 匹配字串開始的位置
注意區分[^],這個是,[...]匹配除了裡面的字母
$匹配字串結尾的位置
\b匹配乙個單詞邊界,即字與空格的位置
\b非單詞邊界匹配
六.選擇
?=exp1(?= exp2):查詢exp2前面的exp1
runoob(?= [\d+])
匹配數字前面的runoob字串
?<=
(?<=exp2)exp1:查詢exp2後面的exp1
(?<=[0-9]+)runoob
匹配數字後面的runoob
exp1(?!exp2):查詢後面不是exp2的exp1
runoob(?![0-9]+)
匹配後面不是數字的runoob
(?(?匹配前面不是數字的runoob
七.反向引用
字元簇確認重複出現
a-z ↩︎
正則基礎知識
g 全域性匹配 i 忽略大小寫 gi 以上組合 匹配乙個輸入或一行的開頭,a 匹配 an a 而不匹配 an a 匹配乙個輸入或一行的結尾,a 匹配 an a 而不匹配 an a 匹配前面元字元0次或多次,ba 將匹配b,ba,baa,baaa 匹配前面元字元1次或多次,ba 將匹配ba,baa,b...
正則基礎知識 斷言
size medium 一 單詞邊界的匹配 使用 b能匹配單詞邊界,在 b所在的一邊不是單詞字元,單詞字元的解釋是 w能匹配的字元。例如 print re.findall r b w b a sentence tcontains na lot of words a sentence contains...
Python基礎知識 正則
import re str4 r id w w w s re.match str4,id 3aea5f99 6797 48bc 8b62 767a16d748c1 print s,type s if str s none print 1 else print 2 python正則寫法 1 匯入re ...