# 一、 正则表达式定义:是对字符串操作的一种逻辑公式,就是用事先定义好的一些特殊字符、及这些特定字符的组合,组成一 个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。(python 的 re 模块实现)
# 二、常见匹配模式
# 注:常用正则表达式大全:http://www.cnblogs.com/zxin/archive/2013/01/26/2877765.html
# 在线检测正则表达式:http://tool.oschina.net/regex
# 三、re.match
# 1> 基本用法:re.match 尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match()就返回none
# re.match(pattern, string, flags=0),pattern是正则表达式,string是需要匹配的字符串, flags标志位,用于控
# 制正则表达式的匹配方式,如:是否区分大小写,多行匹配等等。
# 注:1.string与pattern完全相同,成功匹配
# 2.string虽然多出一个字母,但pattern匹配完成时,匹配成功,后面的字符不再匹配。
# 3.string匹配到最后一个字母时,发现仍然无法完全匹配,匹配失败
#
# 2> 最常规的匹配
# result.group() 显示匹配后的结果 result.span() 显示从开始匹配到的字符数
#
# 3> 泛匹配
# 只要匹配对开头和结尾就可以
#
# 4> 匹配目标
# 正则表达式有小括号时,会匹配小括号内的内容为一组,用group(1)输出,可以有n个,即group(n)
#
# 5> 贪婪匹配
# .* 会匹配尽可能多的字符,小括号内的表示至少匹配一个
#
# 6> 非贪婪匹配
# .* 后面加? 表示碰到后面小括号内的立即开始匹配
#
# 7> 匹配模式(re.S)
#
# 8> 转义
# 碰到特殊字符 . * $ ^ 之类的,可以用\进行匹配
#
# 9> 总结
# 尽量使用泛匹配,使用括号得到匹配目标,尽量使用非贪婪模式、有换行符就用re.S
#
# 四、re.search
# 1> 基本用法:re.search 扫描整个字符串并返回第一个成功匹配的目标
#
# 注:能用re.search 就不用 re.match
# 2> 例子:
#
#
# 五、 re.findall
# 1> 基本用法:搜索字符串,以列表形式返回所有能匹配的字符串
# 2> 例子:
#
#
#
#
# 六、 re.sub
# 1> 基本用法:替换字符串中每一个匹配到的子串后返回替换后的字符串
# 2> 例子:
#
#
#
#
#
#
# 七、re.compile
# 1> 基本用法:将正则字符串编译成正则表达式对象,以便于复用该匹配模式
#
#
# 八、实战训练
#
# 不知道为什么,运行就卡住了。
# 之后只匹配TRL和 title 也不行。