1、常用正则表达式
Python支持的正则表达式元字符和语法:
正则表达式
代表的匹配字符
[0-9]
0123456789任意之一
[a-z]
小写字母任意之一
[A-Z]
大写字母任意之一
\d
等同于[0-9]
\D
等同于[^0-9]匹配非数字
\w
等同于[a-z0-9A-Z_]匹配大小写字母、数字和下划线
\W
等同于[^a-z0-9A-Z_]等同于上一条取非
正则表达式里的元字符及其作用
元字符
说明
.
代表任意字符
|
逻辑或操作符
[ ]
匹配内部的任一字符或子表达式
[^]
对字符集和取非
-
定义一个区间
\
对下一字符取非(通常是普通变特殊,特殊变普通)
*
匹配前面的字符或者子表达式0次或多次
*?
惰性匹配上一个
+
匹配前一个字符或子表达式一次或多次
+?
惰性匹配上一个
?
匹配前一个字符或子表达式0次或1次重复
{n}
匹配前一个字符或子表达式
{m,n}
匹配前一个字符或子表达式至少m次至多n次
{n,}
匹配前一个字符或者子表达式至少n次
{n,}?
前一个的惰性匹配
^
匹配字符串的开头
\A
匹配字符串开头
$
匹配字符串结束
[\b]
退格字符
\c
匹配一个控制字符
\d
匹配任意数字
\D
匹配数字以外的字符
\t
匹配制表符
\w
匹配任意数字字母下划线
\W
不匹配数字字母下划线
2 re正则对象和正则匹配效率比较
re模块
正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配。
re 模块使 Python 语言拥有全部的正则表达式功能。
compile 函数根据一个模式字符串和可选的标志参数生成一个正则表达式对象。该对象拥有一系列方法用于正则表达式匹配和替换。
re模块也提供了与这些方法功能完全一致的函数,这些函数使用一个模式字符串做为它们的第一个参数。
re模块是python中处理正则表达式的一个模块,通过re模块的方法,把正则表达式pattern编译成正则对象,以便使用正则对象的方法。
正则匹配时,优先编译成正则对象,然后进行匹配,程序的执行效率高。
3 编译正则对象
正则匹配字符‘r’
r表示raw的简称。raw string意思是原生字符,这个字符串中间的特殊字符不用转义
如表示'\n',可以这样:r'\n' 或者'\\n'
1、re.compile([pattern[,flags]])
这个方法就是把字符串的正则表达式编译成正则对象,第二个flag是匹配模式,取值可以使用按位或运算符"|"表示同时生效。如:re.I|re.M,flag的可选项有:
re.I(re.IGNORECASE):忽略大小写
M(MULTILINE):多行模式,改变'^'和'$'的行为
S(DOTALL):点任意匹配模式,改变'.'的行为
X(VERBOSE):详细模式。这个模式下增长表达式可以是多行,忽略空白字符,并可以加入注释,下面两个正则是等效的
a = re.compile(r"""\d + # the integral part
\. # the decimal point
\d * # some fractional digits""", re.X)
b = re.compile(r"\d+\.\d*")