天天看点

Python正则表达式指南下下半部 

 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>