正規表示式

2021-08-29 05:12:22 字數 1321 閱讀 5503

pattern

識別和處理文字與資料,通用的正規表示式

就是記錄文字規則的**,不管郵箱,**,位址等都有一定規則

目的就是在一串雜亂無章的字元中匹配出想要的資料

適用於多種語言

.匹配除換行符以外任意字元,任意乙個

\w:非特殊字元

匹配列表中任選的一位,有一定循序的可以用- 例如[a-z]

\d: 表示數字0-9

\d: 表示匹配非數字

\s 空白字元 空格和tab鍵

\s: 非空白字元

\w:非特殊字元 數字,字母,下劃線,漢子

\w:特殊字元

\b 匹配單詞的開始或者結束

match()方法,在字串從頭開始匹配,乙個個比較

group拿到要的資料

group() 可以一次輸入多個組號,在這種情況下它將返回乙個包含那些組所對應值的元組。

match如果匹配不到就返回乙個空的物件

*前乙個字元出現0次+

+前乙個字元出現1次+

?前乙個字元出現0次或者1次

前乙個字元m次

前乙個字元m到n次

m次以上

^匹配字串開頭 『^/d』

匹 配字

符串結尾

′/

w匹配字串結尾 '/w

匹配字串結

尾′/w

』[^字元]除了指定字元都匹配

.表示對.轉義,表示普通的點

###| 匹配左右任意乙個表示式:re.match(『peer|banana』,value)

可以加括號擴起來

group() 可以一次輸入多個組號,在這種情況下它將返回乙個包含那些組所對應值的元組。

預設獲取第0個分組,匹配整個資料,要想分組,就拿括號擴起來

match匹配從左往右

findall只查詢分組裡的東西,要想改變 (??

注意sub的替換後內容還可以是函式,可以定義乙個函式,插入進去,函式返回型別必須是字串

re.split(『regx』,『str』,分割次數maxsplit=num)

三引號:多行字串

strip字串兩邊空格

正規表示式預設是貪婪的,盡可能往後匹配,會盡可能多匹配

所以相對的可以讓其盡量少匹配,在範圍正規表示式後加上?

就是?前面的正規表示式,不能匹配?後的資料,留給之後的匹配,實現盡可能少匹配

我們使用的是原始字串,不需要再轉義

因為\後表示特殊字元,是看不到的

加上r就是表示宣告,不使用轉義

所以以後使用正規表示式時候,都建議加上r,有反斜槓不需要轉義,不需要轉義也不影響

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

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

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