python正则表达式

来源:互联网 发布:linux进入用户命令 编辑:程序博客网 时间:2024/06/08 20:15

1. 什么是正则表达式?

(1)正则表达式由普通字符和元字符组成,通过此模式,用来匹配特定的内容。

(2)普通字符:包括大小写字母、数字。

(3)元字符:是一些特殊字符,这些字符并不表示字面上的含义,而会被解释为一些特定的含义。

(4)正则表达式区分大小写。

2.元字符

(1)匹配字符

.: 匹配任意单个字符
[]: 匹配指定范围内的任意单个字符
[0-9]: 数字
[a-z]: 小写字母
[A-Z]: 大写字母
[^ ]: 匹配指定范围外的任意单个字符(出现在[]中的^代表排除)

(2)匹配次数

*: 匹配前面的一个字符任意次,包括0次
+: 匹配其前面的字符1次或多次
?: 匹配其前面的字符1次或0次
{m, n}: 匹配其前面的字符至少m次,至多n次。

(3)匹配位置

^:行首
$:行尾
( ):分组, 作为一个整体,\1引用第一个小括号内匹配的内容,以此类推\2, \3
A|B:A整体 或者 B整体

(4)特殊符号

\d 匹配任何数字
\D 匹配非数字字符
\w 匹配字母、数字与下划线
\W 匹配不是字母、数字与下划线的字符
\s 匹配空白字符
\S 匹配非空白字符
\b 匹配单词的开始和结束
\B 匹配不是单词的开始和结束的位置

3.正则表达式模块re

正则表达式字符串: r’正则表达式’

(1)常用方法
compile(): 编译正则表达式
findall(): 返回匹配列表(如果有小括号, 返回小括号内正则匹配的内容)
match(): 从字符串的开头对模式进行匹配,如果成功,则返回一个对象, 如果失败, 则返回None。

>>> import re>>> m = re.match('foo', 'foo')>>> m<_sre.SRE_Match object at 0x7f77fa6af4a8>>>> m.group()'foo'>>> m = re.match('foo', 'bar')>>> m>>> m.group()Traceback (most recent call last):  File "<stdin>", line 1, in <module>AttributeError: 'NoneType' object has no attribute 'group'

search(): (在字符串任意位置)如果搜索到成功的匹配对象, 否则返回None。

>>> m = re.match('foo', 'seafood')>>> m>>> m.group()Traceback (most recent call last):  File "<stdin>", line 1, in <module>AttributeError: 'NoneType' object has no attribute 'group'>>> m = re.search('foo', 'seafood')>>> m<_sre.SRE_Match object at 0x7f77fa6af4a8>>>> m.group()'foo'

split(): 正则表达式作为分隔符把字符串分隔为一个列表,返回列表
sub()/subn(): 将某字符串中匹配正则表达式模式的部分进行替换。

(2)match()/search() 返回对象的方法
group():返回整个正则表达式匹配的字符串,同group(0)。
group(i): 正则表达式中第i个”()”括起来部分匹配的内容
groups():返回被整个正则表达式匹配的字符串组成的元组
start():返回匹配开始的位置
end():返回匹配结束的位置
span():返回一个元组包含匹配(开始, 结束)的位置

0 0