正規表示式

2021-08-19 03:20:50 字數 1369 閱讀 2473

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

\d 匹配數字,即0-9

\d 匹配非數字,即不是數字

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

\s 匹配非空白

\w 匹配單詞字元,即a-z、a-z、0-9、

\w 匹配非單詞字元

import re

match_obj = re.match("t.o", "t3o")

if match_obj:

# 獲取匹配的結果

print(match_obj.group())

else:

print("匹配失敗")

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

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

匹配前乙個字元出現m次

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

$ 匹配字串結尾

'\.': 把正規表示式的**轉義程普通字元『.』

(ab) 將括號中字元作為乙個分組

\num 引用分組num匹配到的字串

(?p) 分組起別名

(?p=name) 引用別名為name分組匹配到的字串

re.search

("\d+", "水果有: 香蕉,蘋果,鴨梨,桃子 共20個")

re.findall

("\d+", "水果有: 香蕉5個,蘋果8個,鴨梨5個,桃子2個 共20個")

第二個是替換的內容

第三個是在指定字串中替換

result: 返回替換後的結果

re.sub

("\d+","200", "閱讀數:10")

result = re.split(":|,", "哈哈:嘿嘿,嘻嘻:呵呵")
my_str = ""

283" height="

163" class="js_listthumb" style="display: block;">"

""match_obj = re.search("https?://.*?.jpg", my_str)

解決辦法: 使用非貪婪,盡量讓其少匹配, 在範圍正規表示式**後使用'?'

非貪婪就是在範圍真正表示式後模使用『?』, 比如: *, +, ?, 等範圍表示式後面都可以加上『?』,表示盡量少匹配內容

match_obj = re.match(r"c:\\a\\b\\c", my_str)
建議:如果以後使用正規表示式為了相容這個反斜槓的問題,我們可以字串前面加上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正規表示式 編寫正規表示式

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