count用于指定最多替換次數,不指定時全部替換。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<code>import</code> <code>re</code>
<code>p</code><code>=</code> <code>re.</code><code>compile</code><code>(r</code><code>'(\w+) (\w+)'</code><code>)</code>
<code>s</code><code>=</code> <code>'i say, hello world!'</code>
<code>print</code> <code>p.sub(r</code><code>'\2 \1'</code><code>, s)</code>
<code>def</code> <code>func(m):</code>
<code> </code><code>return</code> <code>m.group(</code><code>1</code><code>).title()</code><code>+</code> <code>' '</code> <code>+</code> <code>m.group(</code><code>2</code><code>).title()</code>
<code>print</code> <code>p.sub(func, s)</code>
<code>### output ###</code>
<code># say i, world hello!</code>
<code># I Say, Hello World!</code>
7.subn(repl, string[, count]) |re.sub(pattern, repl, string[, count]):
傳回 (sub(repl, string[, count]), 替換次數)。
<code>print</code> <code>p.subn(r</code><code>'\2 \1'</code><code>, s)</code>
<code>print</code> <code>p.subn(func, s)</code>
<code># ('say i, world hello!', 2)</code>
<code># ('I Say, Hello World!', 2)</code>
以上就是Python對于正規表達式的支援。熟練掌握正規表達式是每一個程式員必須具備的技能,這年頭沒有不與字元串打交道的程式了。筆者也處于初級階段,與君共勉,^_^
另外,圖中的特殊構造部分沒有舉出例子,用到這些的正規表達式是具有一定難度的。有興趣可以思考一下,如何比對不是以abc開頭的單詞,^_^
<b>本文轉自 風雨蕭條 51CTO部落格,原文連結:http://blog.51cto.com/1095221645/1607793,如需轉載請自行聯系原作者</b>