python正則表達式

需要導入re模塊

import re
說明:

符號 說明
. 匹配任意1個字符(除了\n)
[ ] 匹配[ ]中列舉的字符
\d 匹配數字,即0-9
\D 匹配⾮數字,即不是數字,等價於[^0-9]
\s 即 空格,tab鍵,\r,\r\n,\n
\S 匹配⾮空⽩
\w 匹配單詞字符,即a-z、A-Z、0-9、_
\W 匹配⾮單詞
* 匹配前⼀個字符出現0次或者⽆限次,即可有可⽆
+ 匹配前⼀個字符出現1次或者⽆限次,即⾄少有1次
匹配前⼀個字符出現1次或者0次,即要麼有1次,要麼沒有
{m} 匹配前⼀個字符出現m次
{m,} 匹配前⼀個字符⾄少出現m次
{m,n} 匹配前⼀個字符出現從m到n次
^ 匹配字符串開頭,在[ ]中表示取反,[^/] 匹配非/
$ 匹配字符串結尾
\b 匹配⼀個單詞的邊界
\B 匹配⾮單詞

案例:獲取字符串GET /index HTTP/1.1 中的 /index

import re
s = “GET /index HTTP/1.1”
str = re.match("[/]+(/[ ]*)",s)
str.group(1)
‘/index’

“[/]+(/[ ]*)”
[^/] 匹配非/,+表示⾄少匹配1次,()表示分組,/表示匹配/,[^ ]表示匹配非空的字符,*表示匹配0次或無限次
注意事項:

1.Python中字符串前⾯加上 r 表示原⽣字符串

s = “c:\a\b”
re.match(“c:\a”,s) #沒有匹配到,沒加r,\ 表示轉義,實際上匹配的是"c:\a"
re.match(r"c:\a",s) #加上r之後匹配到了
<_sre.SRE_Match object; span=(0, 4), match=‘c:\a’>

2.python的正則表達式中需要轉義的元字符有以下幾個,如果加上r就不需要轉義了:

    .
    ^
    $
    *
    +
    ?
    \\
    []
    |
    {}
    ()
發佈了20 篇原創文章 · 獲贊 5 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章