Python 正則表示式示例
字面字元
序號 | 示例及描述 |
---|---|
1 | python 匹配行首。 |
字元類
序號 | 示例及描述 |
---|---|
1 | [Pp]ython 匹配 "Python" 或 "python" |
2 | rub[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_] |
重複情況
序號 | 示例及描述 |
---|---|
1 | ruby? 匹配 "rub" 或 "ruby":y 可選 |
2 | ruby* 匹配 "rub" 加 0 個或多個 y |
3 | ruby+ 匹配 "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 匹配第二個組匹配的任何內容,依此類推。 |
備選方案
序號 | 示例及描述 |
---|---|
1 | python|perl 匹配 "python" 或 "perl" |
2 | rub(y|le)) 匹配 "ruby" 或 "ruble" |
3 | Python(!+|\?) "Python" 後跟一個或多個 ! 或一個 ? |
錨點
這需要指定匹配位置。
序號 | 示例及描述 |
---|---|
1 | ^Python 匹配字串或內部行的開頭處的 "Python" |
2 | Python$ 匹配字串或行末尾的 "Python" |
3 | \APython 匹配字串開頭的 "Python" |
4 | Python\Z 匹配字串結尾處的 "Python" |
5 | \bPython\b 匹配單詞邊界處的 "Python" |
6 | \brub\B \B 是非單詞邊界:匹配 "rube" 和 "ruby" 中的 "rub",但不能單獨匹配 |
7 | Python(?=!) 如果後面跟著感嘆號,則匹配 "Python"。 |
8 | Python(?!!) 如果後面不跟著感嘆號,則匹配 "Python"。 |
廣告