字元
功能等價
.除\n任意字元
[ ]匹配[ ]中列舉的字元
\d數字
[0-9]
\d非數字
[^0-9]
\s空白字元, 空格,tab \n\t\r\f\v
\s非空白
[^\n\t\r\f\v]
\w字母數字
[a-za-z0-9_]
\w非字母數字
[^a-za-z0-9_]
字元功能
*0次或n次
+1次或n次
?1次或者0次
m次m~n次均可
至少m次
至多n次
貪婪(預設)
盡可能匹配多的字元
非貪婪盡可能匹配少的字元
在上文中多個字元"*","?","+",""
後面加上?
,使貪婪變成非貪婪。
四、開頭結尾
^行的開頭
$行的結尾
|左右任意乙個表示式即可
(ab)
將括號中字元作為乙個分組
\num
引用分組num匹配到的字串
(?p)
分組起別名
(?p=name)
引用別名為name分組匹配到的字串
re.i
忽略大小寫
re.m
匹配多行
re.s
指定".", 匹配所有字元,包括\n
match
從開頭匹配資料,輸出為列表
import re
# 使用match方法進行匹配操作
pattern = re.compile(r'模式')
result = re.match(正規表示式,要匹配的字串)
# 如果上一步匹配到資料的話,可以使用group方法來提取資料
result.group()
.group()
引數為0或空返回整個匹配
有引數返回特定的分組細節
.groups()
返回包含所有子分組的元組
search
匹配自己想要資料,僅匹配第乙個,不用從頭匹配
import re
ret = re.search(r"\d+", "閱讀次數999")
print(ret.group())
'999' 輸出為字串
findall
匹配出符合正則所有的資料,輸出為列表
import re
ret = re.findall(r"\d+", "python = 9999, c = 7890, c++ = 12345")
print(ret)
['9999', '7890', '12345'] 輸出為列表
sub 將匹配到的資料進行替換 替換新的字串
import re
ret = re.sub(r"\d+", '998', "python = 997")
print(ret)
'998'
split 根據匹配進行切割字串,並返回乙個列表需求:切割字串「info:xiaozhang 33 shandong」
import re
ret = re.split(r":| ","info:xiaozhang 33 shandong")
print(ret)
['info', 'xiaozhang', '33', 'shandong']
正規表示式 正規表示式 總結
非負整數 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正規表示式 編寫正規表示式
為了所有實用化的用途,你可以通過使用程式產生正確的結果。然而,並不意味著程式總是如你所願的那樣正確地工作。多數情況下,如果程式不能產生想要的輸出,可以斷定真正的問題 排除輸入或語法錯誤 在於如何描述想要的東西。換句話說,應該考慮糾正問題的地方是描述想要的結果的表示式。表示式不完整或者公式表示得不正確...