正規表示式是用來匹配字串的強有力**。
在正規表示式中,如果直接給出字元,就是精確匹配。用\d可以匹配乙個數字,\w可以匹配乙個字母或者數字。要匹配變長的字元,用?表示0個或1個字元,用表示n個字元,用表示n-m個字元,等等。
要更精確的匹配,可以用表示範圍,比如:
a|b 可以匹配a或b,
^ 表示行的開頭, ^\d 表示必須以數字開頭
$表示行的結尾, \d$表示必須以數字結束
python提供 re 模組,包含所有正規表示式的功能。由於python的字串本身也用 \ 轉義, 所以要特別注意。
s = 'abc\\-001' # python的字串
# 對應的正規表示式字串變成:
# 'abc\-001
import re
re.match(r'^\d\-\d$','010-12345')
match()方法判斷是否匹配,如果匹配成功,則返回乙個match物件,否則返回none。
用正規表示式切分字串比用固定的字串靈活,』a b c』.split(』 『)
[『a』, 『b』, 』 『, 』 『, 『c』]
re.split(r』\s+』,』a b c』)
[『a』,』b』,』c』]
re.split(r』[\s,]+』,』a,b,c d』)
re.split(r』[\s,\;]+』,』a,b;;c d』)
group(0)永遠是原始字串,group(1), group(2)…表示第乙個第二個子串。
貪婪匹配:正則匹配時貪婪匹配,也就是盡可能匹配多個字元。
當我們在python中使用正規表示式時,re模組內部會幹兩件事:
部分正規表示式
d 非負整數 正整數 0 0 9 1 9 0 9 正整數 d 0 非正整數 負整數 0 0 9 1 9 0 9 負整數 d 整數 d d 非負浮點數 正浮點數 0 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 非正浮點數 負浮點數 ...
正規表示式部分整理
一 校驗數字的表示式 數字 0 9 n位的數字 d 至少n位的數字 d m n位的數字 d 零和非零開頭的數字 0 1 9 0 9 非零開頭的最多帶兩位小數的數字 1 9 0 9 0 9 帶1 2位小數的正數或負數 d d 正數 負數 和小數 d d 有兩位小數的正實數 0 9 0 9 有1 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...