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>