正则表达式是用于处理字符串的强大工具,拥有自己独特的语法以及一个独立的处理引擎,效率上可能不如 str 自带的方法,但功能十分强大。本文介绍了 Python 对于正则表达式的支持,包括正则表达式基础以及 Python 正则表达式标准库的完整介绍及使用示例。


1. 正则表达式基础


1.1 介绍


正则表达式并不是 Python 的一部分。正则表达式是用于处理字符串的强大工具,拥有自己独特的语法以及一个独立的处理引擎,效率上可能不如 str 自带的方法,但功能十分强大。得益于这一点,在提供了正则表达式的语言里,正则表达式的语法都是一样的,区别只在于不同的编程语言实现支持的语法数量不同;但不用担心,不被支持的语法通常是不常用的部分。


下图展示了使用正则表达式进行匹配的流程:


正则表达式的大致匹配过程是:依次拿出表达式和文本中的字符比较,如果每一个字符都能匹配,则匹配成功;一旦有匹配不成功的字符则匹配失败。


1.2 正则表达式模式


下表列出了 python 正则表达式模式语法中的特殊元素。如果你使用模式的同时提供了可选的标志参数,某些模式元素的含义会改变。

模式描述示例
字符
.匹配任意字符,除了换行符,当 re.DOTALL 标记被指定时,则可以匹配包括换行符的任意字符。a.c
\转义字符,使后一个字符改变原来的意思。如果字符串中有字符 * 需要匹配,可以使用 \* 或者字符集 [*]。a\.c 或者 a\\c
[...]字符集(字符类),用来表示一组字符。字符集中的字符可单独列出:[amk] 匹配 'a','m' 或 'k';也可以给出范围:[a-c] 匹配 'a','b' 或 'c'。a[bcd]e
[^...]不在 [] 中的字符:[^abc] 匹配除了 a,b,c 之外的字符。[^abc]
预定义字符集(可以写在字符集 [...] 中)
\d匹配任意数字,等价于 [0-9]。a\dc
\D匹配任意非数字,等价于 [^\d]。a\Dc
\s匹配任意空白字符,等价于 [<空格>\t\n\r\f\v]。a\sc
\S匹配任意非空字符,等价于 [^\s]。a\Sc
\w匹配字母数字及下划线:[a-zA-Z0-9_]。a\wc
\W匹配非字母数字及下划线:[^\w]。a\Wc
数量词(可用在字符或 [...] 后)
*匹配前一个字符 0 或无限次。abc*
+匹配前一个字符 1 次或无限次。abc+
?匹配前一个字符 0 次或 1 次。abc?
{m}匹配前一个字符 m 次。ab{2}c
{m,n}匹配前一个字符 m 至 n 次。m 和 n 可以省略:如省略 m,则匹配 0 至 n 次;如省略 n,则匹配 m 至无限次。ab{1,2}cd


https://www.cnblogs.com/wxshi/p/6827056.html

http://www.runoob.com/python/python-reg-expressions.html