Python 正則表示式示例


字面字元

序號示例及描述
1python
匹配行首。

字元類

序號示例及描述
1[Pp]ython
匹配 "Python" 或 "python"
2rub[ye]
匹配 "ruby" 或 "rube"
3[aeiou]
匹配任何一個小寫母音
4[0-9]
匹配任何數字;與 [0123456789] 相同
5[a-z]
匹配任何小寫 ASCII 字母
6[A-Z]
匹配任何大寫 ASCII 字母
7[a-zA-Z0-9]
匹配以上任何一個
8[^aeiou]
匹配除小寫母音之外的任何字元
9[^0-9]
匹配除數字之外的任何字元

特殊字元類

序號示例及描述
1.
匹配除換行符之外的任何字元
2\d
匹配數字:[0-9]
3\D
匹配非數字:[^0-9]
4\s
匹配空白字元:[ \t\r\n\f]
5\S
匹配非空白字元:[^ \t\r\n\f]
6\w
匹配單個單詞字元:[A-Za-z0-9_]
7\W
匹配非單詞字元:[^A-Za-z0-9_]

重複情況

序號示例及描述
1ruby?
匹配 "rub" 或 "ruby":y 可選
2ruby*
匹配 "rub" 加 0 個或多個 y
3ruby+
匹配 "rub" 加 1 個或多個 y
4\d{3}
精確匹配 3 個數字
5\d{3,}
匹配 3 個或更多數字
6\d{3,5}
匹配 3、4 或 5 個數字

非貪婪重複

這將匹配最少的重複次數 -

序號示例及描述
1<.*>
貪婪重複:匹配 "<python>perl>"
2<.*?>
非貪婪:匹配 "<python>" 中的 "<python>perl>"

使用括號進行分組

序號示例及描述
1\D\d+
無分組:+ 重複 \d
2(\D\d)+
分組:+ 重複 \D\d 對
3([Pp]ython(, )?)+
匹配 "Python"、"Python, python, python" 等。

反向引用

這將再次匹配先前匹配的組 -

序號示例及描述
1([Pp])ython&\1ails
匹配 python&pails 或 Python&Pails
2(['"])[^\1]*\1
單引號或雙引號字串。\1 匹配第一個組匹配的任何內容。\2 匹配第二個組匹配的任何內容,依此類推。

備選方案

序號示例及描述
1python|perl
匹配 "python" 或 "perl"
2rub(y|le))
匹配 "ruby" 或 "ruble"
3Python(!+|\?)
"Python" 後跟一個或多個 ! 或一個 ?

錨點

這需要指定匹配位置。

序號示例及描述
1^Python
匹配字串或內部行的開頭處的 "Python"
2Python$
匹配字串或行末尾的 "Python"
3\APython
匹配字串開頭的 "Python"
4Python\Z
匹配字串結尾處的 "Python"
5\bPython\b
匹配單詞邊界處的 "Python"
6\brub\B
\B 是非單詞邊界:匹配 "rube" 和 "ruby" 中的 "rub",但不能單獨匹配
7Python(?=!)
如果後面跟著感嘆號,則匹配 "Python"。
8Python(?!!)
如果後面不跟著感嘆號,則匹配 "Python"。

更新於: 2020年1月31日

274 次檢視

開啟你的 職業生涯

完成課程獲得認證

立即開始
廣告