正規表示式

2021-08-20 07:14:52 字數 1988 閱讀 6530

正規表示式:

匯入模組 import re

re.match(正規表示式,要匹配的字串)

match方法從左到右匹配,有個不一樣就結束方法

若字串匹配正規表示式,則match方法返回匹配物件(match object),

否則返回none(注意不是空字串"")

匹配物件macth object具有group方法,用來返回字串的匹配部分

表示字元

.匹配任意1個字元(除了\n)

[ ]匹配[ ]中列舉的字元  

[23456]匹配2,3,4,5,6

[^23456]不是23456

[a-z5-9]匹配a到z,5到9

\d匹配數字,即0-9                    ===[0-9]

\d匹配非數字,即不是數字             ====[^0-9]

\s匹配空白,即 空格,tab鍵  

\s匹配非空白

\w匹配單詞字元,即a-z、a-z、0-9、_   ===[a-za-z0-9]

\w匹配非單詞字元

表示數量

*匹配前乙個字元出現0次或者無限次,即可有可無   

/d*表示出現0次或多次數字

+匹配前乙個字元出現1次或者無限次,即至少有1次

?匹配前乙個字元出現1次或者0次,即要麼有1次,要麼沒有

匹配前乙個字元出現m次

匹配前乙個字元至少出現m次

匹配前乙個字元出現從m到n次

原始字串

python中字串前面加上 r 表示原生字串

正則中加個r表示原生字串

例 re.match(r"\\\","\\\")匹配三個\

表示邊界

^匹配字串開頭    ^a:以a開頭

$匹配字串結尾    a$:以a結尾       例:手機號正則:r"1[3578]\d$

\b匹配乙個單詞的邊界   

單詞邊界就是單詞和符號之間的邊界

這裡的單詞可以是中文字元,英文本元,數字;

符號可以是中文符號,英文符號,空格,製表符,換行  

\b匹配非單詞邊界

匹配分組

|匹配左右任意乙個表示式   例 匹配0-100 :r"[1-9]?\d?$|100$"

(ab)

將括號中字元作為乙個分組     常與group(1)或者groups()[0]使用

\num

引用分組num匹配到的字串    常與(ab)使用 \2就是第二個()裡面的內容

(?p)

分組起別名

(?p=name)

引用別名為name分組匹配到的字串

search:查詢字串中匹配的正規表示式的內容,從左到右,查詢到後就停止

findall:查詢字串中所有符合正規表示式的內容

sub 將匹配到的資料進行替換   替換的可以是函式

re.sub(r"\d+", '998', "python = 997")

def replace(result):

s=int(result.group())+50

return str(s)

re.sub(r"\d+",replace,   "python = 997")

split 根據匹配進行切割字串,並返回乙個列表

ret = re.split(r":| ","info:xiaozhang 33 shandong")

print ret

ret=['info','xiaozhang','33','shandong']

python裡數量詞預設是貪婪的(在少數語言裡也可能是預設非貪婪),總是嘗試匹配盡可能多的字元;

非貪婪則相反,總是嘗試匹配盡可能少的字元。

在"*","?","+",""後面加上?,使貪婪變成非貪婪。

練習:替換成

解:s=""

正規表示式 正規表示式 總結

非負整數 d 正整數 0 9 1 9 0 9 非正整數 d 0 負整數 0 9 1 9 0 9 整數 d 非負浮點數 d d 正浮點數 0 9 0 9 1 9 0 9 0 9 1 9 0 9 0 9 0 9 1 9 0 9 非正浮點數 d d 0 0 負浮點數 正浮點數正則式 英文本串 a za z...

正規表示式 表示式

網域名稱 a za z0 9 a za z0 9 a za z0 9 a za z0 9 interneturl a za z s 或 http w w w 手機號碼 13 0 9 14 5 7 15 0 1 2 3 5 6 7 8 9 18 0 1 2 3 5 6 7 8 9 d 號碼 x x x...

Linux正規表示式 編寫正規表示式

為了所有實用化的用途,你可以通過使用程式產生正確的結果。然而,並不意味著程式總是如你所願的那樣正確地工作。多數情況下,如果程式不能產生想要的輸出,可以斷定真正的問題 排除輸入或語法錯誤 在於如何描述想要的東西。換句話說,應該考慮糾正問題的地方是描述想要的結果的表示式。表示式不完整或者公式表示得不正確...