参考: http://www.cnblogs.com/tina-python/p/5508402.htm
========
1,预定义字符集,可以写在字符集[....]中
\d 数字:
\D 非数字
\s 匹配任何空白字符
\S 非空白字符
\w 匹配包括下划线在内的任何字符
\W 匹配非字母字符,即匹配特殊字符
\A 仅匹配字符串开头,同^
\Z 仅匹配字符串结尾,同$
\b 匹配\w和\W之间,即匹配单词边界
\B [^\b]
2,特殊用法
(?P<name>) 分组,除了原有的编号为再指定一个额外的别名
(?P=name)引用别名为<name>的分组匹配的字符串
\<number>引用编号为<number>的分组匹配到字符串
3,re模块中常用的功能函数
3.1 compile()
编译正则表达式,返回一个对象的模式。
格式:
re.compile(pattern,flags=0)
pattern:编译时用的表达式字符串
flags 编译标志位,用于修改正则表达式的匹配方法,如:是否区分大小写,多行匹配
常用的flags有:
标志 | 含义 |
re.S(DOTALL) | 使.匹配包括换行在内的所有字符 |
re.I (ignorecase) | 使匹配对大小写不敏感 |
re.L (locale) | 做本地化识别(local-aware),语法 |
re.M (multiline) | 多行 |
re.X (verbose) | |
re.U | unicode 字符集解析 |
#coding:utf-8
import re
def token_stream(line):
return re.findall(r'\w+',line,re.I)
tt = "Tina is a good girl, she is cool, clever, and so on..."
rr = re.compile(r'\w*oo\w*')
print(rr.findall(tt))
3.2 match
3.3 search
3.4 findall
3.5 finditer
3.6 split
3.7 sub
3.8 subn