學習資源來自ubuntu wikipython
正則表達式,各類語言都有相關的庫。就其本質而言,正則表達式(或 RE)是一種小型的、高度專業化的編程語言正則表達式
"[" 和 "]" : 它們經常使用來指定一個字符類別,所謂字符類別就是你想匹配的一個字符集。 字符能夠單個列出,也能夠用"-"分隔表示區間[a-z].編程
\d
: 至關於[0-9] \D
: 匹配任何非數字字符;至關於[^0-9] \s
: 匹配任何空白字符;至關於[ \t\n\r\f\v ] \S
: 匹配任何非空白字符;至關於[^ \t\n\r\f\v ] '\w' : 匹配任何字母數字字符;至關於[a-zA-Z0-9_] \W
: ...; 至關於[^a-zA-Z0-9_] 舉個栗子:[\s,.]將匹配任何空白字符","或者"."ubuntu
正則表達式的另外一個功能是你能夠指定正則表達式的一部分的重複次數。markdown
正則表達式被編譯成
RegexObject
實例,能夠爲不一樣的操做提供方法,如模式匹配搜索或字符串替換。編程語言
<pre><code> import re p = re.compile('ab\*') print p <\_sre.SRE\_Pattern object at 0xb76e1a70> </code></pre>學習
幾個重要的方法(regexobject的方法):
match()
: 決定re是否在字符串剛開始的位置匹配search()
: 掃描字符串,找到這個re匹配的位置findall()
: 找到re匹配的全部子串,做爲一個列表
返回finditer()
: 找到re匹配的全部自串,並把他們做爲一個迭代器返回spa
幾個MatchObject的重要方法:.net
<pre><code> >>> m = p.match( 'tempo') >>> print m <_sre.SRE_Match object at 80c4f68> </code></pre>code
group()
: 返回被re匹配的字符串 start()
: 返回匹配開始的位置 end()
: 返回結束的位置 span()
: 返回一個元組包含匹配(開始,結束)的位置
<!-- lang: python --> import re str = "http://www.oschina.net/?code=QlSJi2&state=" pattern = re.compile('code=\w+\&') match = pattern.search(str) if match: print match.group(), match.span()