这些天在做非法网站的分类,或多或少需要用到一些正则表达式,之前做成人网站分类时也用到了一些,但是只是用了相关接口,自己并没有多少思考,想想有必要稍微系统的记录一下,总结一下.
从接口方面来说,需要介绍几个Python中re模块的几个函数,以便于之后直接使用接口:
-
match函数
格式:re.match(pattern,string,flag=0)
pattern : 要匹配的正则表达式
string : 要匹配的字符创
flags : 标志位,用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等等,e.g. re.M,re.I,如果使用多个标记位,可以使用|连接起来,比如(re.M|re.I)
示例如下: -
re.search方法
格式: re.search(pattern,string,flag=0)
pattern : 要匹配的正则表达式
string : 要匹配的字符串
flags : 标志位,用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等
匹配成功则re.search方法放回一个匹配的对象,否则放回None,使用方式与match中的flags相同
示例如下: -
re.match 与 re.search的区别:
re.match只匹配字符串的开始,如果开始不符合正则表达式的规则,则匹配失败,函数返回None;而re.search则匹配整个字符串,直到找到一个匹配 -
the difference between ‘.+’ and ‘.+?’
e.g.
I have the string: “extend cup end table”
4.1 The pattern e.+d finds: extend cup end
4.2 The pattern e.+?d finds: extend and end
4.3 explain:
Both will match any sequence of one or more characters. The difference is that:
.+ is greedy and consumes as many characters as it can.
.+? is reluctant and consumes as few characters as it can.