文章目录
一、 正则表达式操作符
(一)表示字符的操作符
.
:表示任何单个字符(除了\n)[]
:字符集,对单个字符给出范围,如[a-z][^]
:除去这些单个字符的其他字符,如[^a-c]除去abc三个字符的其他所有字符\d
: 数字,等价于[0-9]\w
: 单词字符,代表[A-Z,a-z,0-9]
(二)扩展字符的操作符
*
: 表示*前的一个字符出现0次或者无限次,abc*
表示ab,abc,abcc等+
: 表示+前一个字符出现1次或者无限次,abc+
表示abc,abcc等等?
: 表示前一个字符0次或者1次扩展,abc?表示ab或者abc{m}
:表示扩展前一个字符m次,如ab{2}c = abbc{m,n}
: 表示扩展字符m到n次,如ab{1,2}c = abc,abbc
(三)其他操作符
|
: 表示多个表达式任意一个,即或^
: 表示匹配字符串开头$
: 表示匹配字符串的结尾()
: 内部只能使用|,用于分组标记
二、Re库的方法
(一)生成正则对象
regx = re.compile(pattern, flags): 将正则表达式生成为一个正则对象,其中pattern为正则表达式
(二)匹配字符串内容
-
re.search(pattern, string, flags=0)
:匹配一次pattern:正则表达式; string:待匹配的字符串; flags:有三种标记,re.I(忽略大小写), re.M(使得^匹配字符串每行的开始部分), re.S(使得.可以匹配所有字符,包括\n)
-
re.match()
:从字符串开头开头匹配正则 -
re.findall()
:匹配字符串中所有符合正则的字符串,并返回列表 -
re.split(pattern, string, maxsplits, flags)
:按照正则进行字符串分隔,返回字符串, maxsplit表示最大分隔次数 -
re.finditer()
:返回匹配到的字符串的迭代器 -
re.sub(pattern, repl, string, count=0, flags=0)
:repl表示代替的字符串,count表示替换的次数
(三)match对象的属性
.string
:待匹配的字符串.re
:匹配的正则表达式.pos
:开始位置.endpos
:结束位置
(四)match对象的方法
.group(0)
:获得匹配后字符串.start()
:匹配字符串在原始字符串开始的位置.end()
:匹配字符串在原始字符串结束的位置.span()
:返回上面两个位置