正規表示式

2021-10-01 13:49:35 字數 1750 閱讀 6668

正規表示式 python提供的機制是存放在re模組下

一、正規表示式常用的方法:

**1.將正規表示式的語法生成對應的正則物件**

正則物件 = compile(正規表示式語法)

**2.match(待校驗的字串)**

如果正規表示式中沒有設定^開頭和$結尾限制這種操作 match的作用類似於驗證待校驗字串是否以正規表示式對應的字串內容開頭

如果正規表示式中設定了^開頭和$結尾限制這種操作 match的作用檢查待校驗的字串的整體內容是否符合正規表示式的語法

如果滿足要求的 返回的match物件 否則返回none

**3.search(待查詢的字串)**

在待查詢的字串中查詢是否有滿足正規表示式的子串 如果有返回查詢到的第乙個子串對應的匹配match物件

如果沒有返回none

**4.findall(待查詢的字串)**

在待查詢的字串中查詢是否有滿足正規表示式的子串

**5.finditer(待查詢的字串)**

在待查詢的字串中查詢是否有滿足正規表示式的子串 將檢驗到的資料對應的match物件放在迭代器中

**6.split(待切割的字串)**

在待切割的字串中以正規表示式對應的內容為切割符 對字串進行切割

**7.sub(新子串,待查詢的字串)**

替換的操作

**8.subn**

返回的是元組

(替換之後的新字串, 替換的次數)

正規表示式的語法

[0-9] --- 0-9中任意乙個數字

[a-za-z] --- 英文本元中的任意乙個

[0-9a-za-z_] --- 數字 字母 下劃線中的任意乙個

[a-cmpk] -- abcmpk中的任意乙個

[^abc]---除了abc之外的任意乙個字元

[+\-*/]----加減乘除

[a-z]* --- 小寫字母連續出現任意個

\d --- 表示的是0-9中任意乙個字元

相當於[0-9]

\d --- [^0-9]表示的是除了0-9中任意乙個字元

\w --- 數字字母下劃線和漢字中的任意乙個

\w --- 非數字字母下劃線和漢字中的任意乙個

\s ---- 表示的是任意空白字元中的乙個

\s ----非任意空白字元中的乙個

邊界匹配

^x --- 表示以x開頭

x$ --- 表示的是以x結尾

\ax --- 以x開頭

x\z --- 以x結尾

視作多行的模式下 會有區別

^ -- 匹配的是每一行的行首

\a -- 匹配字串的開頭

$-- 匹配的是每一行的行尾

\z -- 匹配字串的結尾

\b --- 單詞的邊界

\b --- 單詞非邊界

x* --- 表示x連續出現任意次 [可有可無]

x+ --- 表示x連續出現至少1次

x? ---- 表示x最多出現1次

x表示x最少連續出現m次 最多連續出現n次

x 表示x最少連續出現m次

x 表示x必須連續出現m次

+ * 貪婪匹配

限制貪婪

+? *?

| --- 表示的是或者的意思

(資料1|資料2|資料3)

在資料1 資料2 資料3中任選其一

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

非負整數 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正規表示式 編寫正規表示式

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