[caption id="attachment_61" align="alignnone" width="799"]<img class="size-full wp-image-61" src="http://www.bmysoft.org/wp-content/uploads/2014/09/pyre_ebb9ce1c-e5e8-4219-a8ae-7ee620d5f9f1.png" alt="Python 正则" width="799" height="1719" /></a> Python 正则[/caption]</p>

Step</td></p> Matched</td></p> Explanation</td>
</tr></p>
1</td></p> a</td></p> a 匹配模式</td>
</tr></p>
2</td></p> abcbd</td></p> 引擎匹配 [bcd]*,并尽其所能匹配到字符串的结尾</td>
</tr></p>
3</td></p> Failure</td></p> 引擎尝试匹配 b,但当前位置已经是字符的最後了,所以失败</td>
</tr></p>
4</td></p> abcb</td></p> 退回,[bcd]*尝试少匹配一个字符。</td>
</tr></p>
5</td></p> Failure</td></p> 再次尝次b,但在当前最後一位字符是"d"。</td>
</tr></p>
6</td></p> abc</td></p> 再次退回,[bcd]*只匹配 "bc"。</td>
</tr></p>
7</td></p> abcb</td></p> 再次尝试 b ,这次当前位上的字符正好是 "b"</td>
</tr>
</tbody>
</table>
 </p>
方法/属性</td></p> 作用</td>
</tr></p>
match()</td></p> 决定 RE 是否在字符串刚开始的位置匹配</td>
</tr></p>
search()</td></p> 扫描字符串,找到这个 RE 匹配的位置</td>
</tr></p>
findall()</td></p> 找到 RE 匹配的所有子串,并把它们作为一个列表返回</td>
</tr></p>
finditer()</td></p> 找到 RE 匹配的所有子串,并把它们作为一个迭代器返回</td>
</tr>
</tbody>
</table>
 </p>
方法/属性</td></p> 作用</td>
</tr></p>
group()</td></p> 返回被 RE 匹配的字符串</td>
</tr></p>
start()</td></p> 返回匹配开始的位置</td>
</tr></p>
end()</td></p> 返回匹配结束的位置</td>
</tr></p>
span()</td></p> 返回一个元组包含匹配 (开始,结束) 的位置</td>
</tr>
</tbody>
</table>
编译标志
编译标志让你可以修改正则表达式的一些运行方式。在 re 模块中标志可以使用两个名字,一个是全名如 IGNORECASE,一个是缩写,一字母形式如 I。(如果你熟悉 Perl 的模式修改,一字母形式使用同样的字母;例如 re.VERBOSE的缩写形式是 re.X。)多个标志可以通过按位 OR-ing 它们来指定。如 re.I | re.M 被设置成 I 和 M 标志:</p>
标志</td></p> 含义</td>
</tr></p>
DOTALL, S</td></p> 使 . 匹配包括换行在内的所有字符</td>
</tr></p>
IGNORECASE, I</td></p> 使匹配对大小写不敏感</td>
</tr></p>
LOCALE, L</td></p> 做本地化识别(locale-aware)匹配</td>
</tr></p>
MULTILINE, M</td></p> 多行匹配,影响 ^ 和 $</td>
</tr></p>
VERBOSE, X</td></p> 能够使用 REs 的 verbose 状态,使之被组织得更清晰易懂</td>
</tr>
</tbody>
</table></p>
\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_]。
</pre>
 </p>