標籤: python 正規表示式
. 除換行符的任意字元 dotall
\ 轉義字元
[…] 字元集合
\d 數字:[0-9]
\d 非數字[^0-9]
\s 空白字元[空格》\t\r\n\f\n]
\s 非空白字元[^\s]
\w 單詞字元[a-za-z0-9_]
\w 非單詞字元[^\w]
* 匹配前乙個字元0或者多次
+ 匹配前乙個字元1次或者多次
? 匹配前乙個字元0次或者1次
匹配前乙個字元m次
匹配前乙個字元m至n次
數量詞? 變成非貪婪模式
邊界符^ 匹配字串開頭,多行匹配每一行開頭
$ 匹配字串末尾,多行匹配每一行末尾
\a 僅匹配字串開頭
\z 僅匹配字串末尾
\b 匹配\w 和 \w 之間
邏輯 分組
| 左右表示式任意匹配乙個
先匹配左邊一旦成功則跳過匹配右邊
如果|沒有包含在()中,匹配整個正規表示式
(…) 分組匹配,從左到右,每遇到乙個 ( 編號+1
分組後面可加數量詞
(?p…) 除了分組序號外,指定乙個 name的別名
\ 引用編號為的分組匹配到的字串
(?p=name) 引用別名為的分組匹配到的串
特殊構造
(?:…) (…)不分組版本,用於使用 | 或者後接數量詞
(?ilmsux) ilmsux的每個字元代表乙個匹配模式,只能用在正
則表示式的開頭,可選多個
(?#...) #號後的內容將作為注釋
(?=…) 之後的字串內容需要匹配表示式才能成功匹配
(?!...) 之後的字串不匹配表示式才能成功
(?<=…) 之前的字串需要匹配表示式才能成功
(?ilmsux 正規表示式使用開關
i re.i 忽略大小寫
l re.l 使用預定字元類 \w \w \b \b \s \s 取決當前區域設定
m re.m 多行模式改變^ 和 $ 的行為
s re.s . 任意匹配模式
u re.u 使用預定字元類 \w \w \b \b \s \s \d \d 取決unicode定義的字元屬性
x re.x 詳細模式,可以多行,忽略空白字元,並且可以加入注釋
正規表示式通常用於在文字中查詢匹配的字串。python
裡數量詞預設是貪婪的(在少數語言裡也可能是預設非貪
婪),總是嘗試匹配盡可能多的字元;非貪婪的則相反,
總是嘗試匹配盡可能少的字元。例如:正規表示式"ab*"如
果用於查詢"abbbc",將找到"abbb"。而如果使用非貪婪
的數量詞"ab*?",將找到"a"。
sub 根據模式串進行編譯和互動的函式
python正規表示式元字元 正規表示式
字元 描述將下乙個字元標記為乙個特殊字元 或乙個原義字元 或乙個 向後引用 或乙個八進位制轉義符。例如,n 匹配字元 n n 匹配乙個換行符。序列 匹配 而 則匹配 匹配輸入字串的開始位置。如果設定了 regexp 物件的 multiline 屬性,也匹配 n 或 r 之後的位置。匹配輸入字串的結束...
Python 正規表示式
1.在python中,所有和正規表示式相關的功能都包含在re模組中。2.字元 表示 字串的末尾 如 road 則表示 只有當 road 出現在乙個字串的尾部時才會匹配。3.字元 表示 字元中的開始 如 road 則表示 只有當 road 出現在乙個字串的頭部時才會匹配。4.利用re.sub函式對字串...
Python正規表示式
學習python自然而然就不得不面對正規表示式這個難題。當初在沒有學習python之前,自己也曾經嘗試著學習過正規表示式,但是那時候感覺很麻煩,很難懂,結果就是不了了之。但是現在學習python我用的書是 python基礎教程 第二版 這本書中對re模組的講解很簡單易懂,內容不多但起碼把人領進門了,...