我們在處理字串時,經常會查詢符合某些浮渣規則的字串的需求。正規表示式就是用於描述這些規則的工具。換句話說,正規表示式就是記錄文字規則的**。
一、正規表示式語法
行定位符
行定位符就是用來描述字串的便界。「^」表示行的開始;"$"表示行的結尾。如:
^tm #表示要匹配字串tm的開始位置是行頭
tm$ #表示要匹配字串tm的開始位置是結尾
2.元字元
**說明
.匹配除換行符以外的任意字元
\w匹配字母或數字或下劃線
\s匹配任意的空白符
\d匹配數字
\b匹配單詞的開始或結束
^匹配字串的開始
$匹配字串的結束
3.限定符
限定符說i明
?匹配前面的字元零次或一次
+匹配前面的字元一次或多次
*匹配前面的字元零次或多次
匹配前面的字元n次
匹配前面的字元至少n次
匹配前面的字元最少n次,最多m次
4.排除字元
當我們匹配不符合指定字元集合的字串時,可以用到以下的表示式:
[^a-za-z] #表示用於匹配乙個不是字母的字元
5.選擇字元
試想以下,如何匹配身份證號碼?首先需要了解身份證號碼的規則。身份證號碼長度為15位或18位,如果位15位,則全部是數字;如果位18位,前17位是數字,最後一位是檢驗位,可能是數字或字母。
在上述的描述中,包含著條件選擇的邏輯,這就要使用選擇字元(|)來實現,該字元可理解是「或」,表示式則如下:
(^\d$) | (^\d$) |(^\d) (\d|x|x)$ #表示可以匹配15為數字或者18 為數字,或者17位數字,最後一位可以是數字或者是x或者是x。
6.轉義字元
正規表示式中轉義字(\)和python中大同小異,都是將特殊字元(「.」,"?","")等轉化普通的字元。
用正規表示式匹配如127.0.0.2.1這樣的ip位址,直接使用字元,格式為:
[1-9].[0-9].[0-9].[0-9] #[1-9]表示在1到9的數字中取任意的數字,表示只能是1到3 的長度
但是這樣顯然不是正確的,因為「.」可以匹配任意的字元,這樣匹配的話,會將1271011011這樣的字元匹配出來,所以就要用到轉義字元(\),格式為:
[1-9]\.[0-9]\.[0-9]\.[0-9] #[1-9]表示在1到9的數字中取任意的數字,表示只能是1到3 的長度
7.在python中使用正規表示式的語法
在python中使用正規表示式時,是將其作為模式字串使用的。如將匹配不是字串的乙個字元的正規表示式表示為模糊字串,可以使用下面的**:
'[^a-za-z]'
匹配以字母m開頭的單詞的正規表示式轉換為模式字串,則不能直接在其兩側新增引號定界符,**為:
'\\bm\\w*\\b'
注意,由於模式字串中可能會包含大量的特殊字元和反斜槓,所以需要寫為原生字串,也即是在模式字串前加r或r.如上面的模式字串採用原生字串表示就是:
r'\\bm\\w*\\b'
謝謝! python正規表示式及使用正規表示式的例子
正規表示式 正則表達用來匹配字串 正規表示式匹配過程 正規表示式語法規則 匹配除換行 n 外的任意字串 abcabc 轉義字元,使後乙個字元改變原來的意思 a c a c 字符集,對應的位置可以是字符集中任意字元,字符集中的字元可以逐個列出,也可以給出範圍,如 abc 或 a c 第乙個字元如果是 ...
Python正規表示式使用
python正規表示式使用 正規表示式不是python內建的功能,所以需要引入import re模組才可以使用。正規表示式的功能很多,但是我們通常使用的功能也就是那幾個,這裡對工作中經常使用到的正規表示式進行乙個系統的總結。1.字元 匹配除了換行符 n 外的字元 轉義字元,使後乙個字元改變以前的意思...
python 正規表示式使用
場景 替換很多動態資料的時候,會重複很多的條件判斷if,replace。作用 完成多步,同時去匹配符合特定規則的字串,完成通用的正則匹配 正規表示式是一種通用的字串匹配技術,是不會因為程式語言不同發生變化。想要查詢某種特徵的,具有一定規則的字串,都是可以嘗試使用正規表示式 jsonpath,xpat...