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