天天看點

Python正規表達式指南下半部

2.search(string[, pos[, endpos]]) | re.search(pattern, string[, flags]):

  這個方法用于查找字元串中可以比對成功的子串。從string的pos下标處起嘗試比對pattern,如果pattern結束時仍可比對,則傳回一個Match對象;若無法比對,則将pos加1後重新嘗試比對;直到pos=endpos時仍無法比對則傳回None。

  pos和endpos的預設值分别為0和len(string));re.search()無法指定這兩個參數,參數flags用于編譯pattern時指定比對模式。

<code># encoding: UTF-8</code>

<code>import</code> <code>re</code>

<code># 将正規表達式編譯成Pattern對象</code>

<code>pattern</code><code>=</code> <code>re.</code><code>compile</code><code>(r</code><code>'world'</code><code>)</code>

<code># 使用search()查找比對的子串,不存在能比對的子串時将傳回None</code>

<code># 這個例子中使用match()無法成功比對</code>

<code>match</code><code>=</code> <code>pattern.search(</code><code>'hello world!'</code><code>)</code>

<code>if</code> <code>match:</code>

<code>    </code><code># 使用Match獲得分組資訊</code>

<code>    </code><code>print</code> <code>match.group()</code>

<code>### 輸出 ###</code>

<code># world</code>

  3.split(string[, maxsplit]) | re.split(pattern, string[, maxsplit]): 

  按照能夠比對的子串将string分割後傳回清單。maxsplit用于指定最大分割次數,不指定将全部分割。

<code>p</code><code>=</code> <code>re.</code><code>compile</code><code>(r</code><code>'\d+'</code><code>)</code>

<code>print</code> <code>p.split(</code><code>'one1two2three3four4'</code><code>)</code>

<code>### output ###</code>

<code># ['one', 'two', 'three', 'four', '']</code>

  4.findall(string[, pos[, endpos]]) | re.findall(pattern, string[, flags]): 

  搜尋string,以清單形式傳回全部能比對的子串。

<code>print</code> <code>p.findall(</code><code>'one1two2three3four4'</code><code>)</code>

<code># ['1', '2', '3', '4']</code>

  5.finditer(string[, pos[, endpos]]) | re.finditer(pattern, string[, flags]): 

  搜尋string,傳回一個順序通路每一個比對結果(Match對象)的疊代器 。

<code>for</code> <code>m</code><code>in</code> <code>p.finditer(</code><code>'one1two2three3four4'</code><code>):</code>

<code>    </code><code>print</code> <code>m.group(),</code>

<code># 1 2 3 4</code>

  6.sub(repl, string[, count]) | re.sub(pattern, repl, string[, count]): 

  使用repl替換string中每一個比對的子串後傳回替換後的字元串。

  當repl是一個字元串時,可以使用\id或\g&lt;id&gt;、\g&lt;name&gt;引用分組,但不能使用編号0。

  當repl是一個方法時,這個方法應當隻接受一個參數(Match對象),并傳回一個字元串用于替換(傳回的字元串中不能再引用分組)。

本文轉自    風雨蕭條 部落格,原文連結:    http://blog.51cto.com/1095221645/1607792    如需轉載請自行聯系原作者