正規表示式是一種用來匹配字串的一種強大的**,用一種描述性語言給字串定乙個規則,凡是符合規則的字串,我們就認為匹配了,否則,該字串就是不合法的。
因為正規表示式也是用字元表示的,所以,我們首先了解如何用字元來描述字元。
在正規表示式中,如果直接給出字元,就是精確匹配,
\d :匹配乙個數字;
『009\d』可以匹配『0098』,無法匹配『009a』
\w:匹配乙個字母或者數字;
『\w\w\d』可以匹配『py3』
. :可以匹配任意字元;
『py.』可以匹配『py3』,'py@','pyi'
* :匹配任意個字元(包括0個)
+:表示至少乙個字元;
?:表示0個或者1個字元;
:表示n-m個字元。
\d 表示可以匹配3個數字,比如『012』
\s 可以匹配乙個空格(課包括tab等空白符),所以\s+ 表示至少有乙個空格,可以匹配『 』,『 』。
\d表示3-8個數字,such as :'98765'
以上所得只是可以用正規表示式匹配帶空格的帶區號的**號碼。
如果帶特殊字元,則需要用「\」轉義。
要做到更精確的匹配,可以用來表示範圍:
· [0-9a-za-z\_] 可以匹配乙個數字、字母或者下劃線;
· [0-9a-za-z\_]+ 可以匹配至少由乙個數字、字母或者下劃線組成的字串,例如『009』,『_0ih』,'45ty';
· [a-za-z\_][0-9a-za-z\_]* 可以匹配由字母或者下劃線開頭,後面接任意個由乙個數字、字母或者下劃線組成的字串(python的合法變數);
· [a-za-z\_][0-9a-za-z\_] 更加確認了該變數的長度(1-20個字元),前面乙個字元加上後面最多19個字元組成的字串。
a|b 可以匹配a或者b ,(p|p)ython 可以匹配python ,也可以匹配python;
^ 可以表示行數的開頭;
^\d 表示必須要以數字開頭;
$ 表示行數的結束;
\d$ 表述要以數字結束;
pps:
^py$ 變成了整行匹配,只能匹配到py
python提供re模組,包含了所有正規表示式的功能,由於python 本身也是用\來進行轉義,所以要特別注意:
s=『abc\\-001』 -->'abc\-001'
建議使用『r』字首,就不用考慮轉義的問題了。
除了簡單的判斷是否匹配之外,正規表示式還有提取大量字串的功能,用()表示的就是提取的分組group.
看例子:
注意到group(0)是原始字串,group(1),group(2)是第乙個,第二個子串。
試著完成了廖雪峰正則下面的兩道練習
python正規表示式re模組
嗯 看看就好 小白可能會坑人 有錯誤的話麻煩指出來謝謝 2018年3月15日13 54 11 re 模組 函式與方法的區別 如果是乙個函式,用類名去呼叫,如果是乙個方法,用物件去呼叫 1.compile函式 編 print n1 10 n import re pattern re.compile r...
Python 正規表示式 re模組
在python中,需要用到正規表示式時,就需要匯入re模組進行操作,們可以直接呼叫來實現正則匹配 普通字元 匹配自身 abcabc 匹配任意除換行符 n 外的字元 在dotall模式中也能匹配換行符 a.cabc 轉義字元,使後乙個字元改變原來的意思 a.c a c a.c a c 匹配前乙個字元0...
re模組 正規表示式 python
d 匹配數字 w 匹配字母或數字 s 匹配乙個空格 包括tab s 表示至少乙個空格 表示任意字元 包括零個 表示至少乙個字元 表示0個或1個字元 表示n個字元 表示n m個字元 可以匹配任意字元 a b 表示可以匹配a或b 行的開頭 d 表示必須以數字開頭 表示結尾 d 表示必須以數字結尾 r 字...