re模块 | Python 3.5
https://docs.python.org/3/library/re.html
http://www.cnblogs.com/PythonHome/archive/2011/11/19/2255459.html
1.提供正则表达式相关操作
2.模式串和匹配串可以是Unicode或8-bit字符串,但不能混用
3.语法
http://www.cnblogs.com/book-book/p/5411634.html
'.' 在DOTALL模式下能匹配'\n'
'^'、'$'在MULTILINE模式下能匹配多行起始和结束
(?aiLmsux):
A: ASCII-only
I: ignore case
L: local dependent
M: multiple line
S: dot all
U: Unicode-only
X: verbose
(?P<name>...)
(?P=name)
(?#...)
(?<=...)
(?<!...)
(?(id/name)yes-pattern|no-pattern)
\A、\Z匹配字符串起始和结束位置
4.模块内容
re.compile(pattern, flags=0)
返回RegexObject对象
flags有多个时用 '|' 隔开
re.A re.ASCII
re.DEBUG
re.I re.IGNORECASE
re.L re.LOCAL
re.M re.MULTILINE
re.S re.DOTALL
re.X re.VERBOSE
re.search(pattern, string, flags=0)
在string中任意位置匹配,返回第一个匹配到的对象(match object),或返回None
re.match(pattern, string, flags=0)
在string起始位置匹配(即使有re.M属性)
re.fullmatch(pattern, string, flags=0)
当整个string能被pattern匹配时返回对应的match object,否则返回None
re.split(pattern, string, maxsplit=0, flags=0)
用pattern分割string,如果pattern是用括号括起来的,则能被pattern匹配的分割部分也将保留在结果中
maxsplit不为0时,分割maxsplit次后剩余部分保留在结果中
若开头(或结尾)能被pattern匹配,则结果列表中会以空串开始(或结束)
目前: 空pattern将会被忽略,且若pattern可能为空,有FutureWarning,若pattern为空,有ValueError
re.findall(pattern, string, flags=0)
找出所有不重叠的匹配子串并返回一个列表
re.finditer(pattern, string, flags=0)
找出匹配子串并返回迭代器,若无匹配返回空列表
re.sub(pattern, repl, string, count=0, flags=0)
将string中能被pattern匹配的子串替换为repl
当count不为0时表示替换count次
repl可以是一个函数
re.subn(pattern, repl, string, count=0, flags=0)
同re.sub() 但re.subn()返回包含心字符串和替换词数的二元组
re.escape(string)
对string中非字母数字进行转义
re.purge()
清除re缓存
exception:
re.error(msg, pattern=None, pos=None)
regex.search(string[, pos[, endpos]])
regex.match(string[, pos[, endpos]])
regex.fullmatch(string[, pos[, endpos]])
regex.split(string, maxsplit=0)
regex.findall(string[, pos[, endpos]])
regex.finditer(string[, pos[, endpos]])
regex.sub(repl, string, count=0)
regex.subn(repl, string, count=0)
regex.flags
regex.groups
regex.groupindex
regex.pattern
match.expand(template)
match.group([group1,...])
match.groups(default=None)
match.groupdict(default=None)
match.start([group]) 返回匹配开始位置
match.end([group]) 返回匹配结束位置
match.span([group]) 返回包含匹配起始结束位置的二元组
match.pos
match.endpos
match.lastindex
match.lastgroup
match.re
match.string