python正则表达式记录与心得


这些天在做非法网站的分类,或多或少需要用到一些正则表达式,之前做成人网站分类时也用到了一些,但是只是用了相关接口,自己并没有多少思考,想想有必要稍微系统的记录一下,总结一下.

从接口方面来说,需要介绍几个Python中re模块的几个函数,以便于之后直接使用接口:

  1. match函数
    格式:re.match(pattern,string,flag=0)
    pattern : 要匹配的正则表达式
    string : 要匹配的字符创
    flags : 标志位,用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等等,e.g. re.M,re.I,如果使用多个标记位,可以使用|连接起来,比如(re.M|re.I)
    示例如下:

  2. re.search方法
    格式: re.search(pattern,string,flag=0)
    pattern : 要匹配的正则表达式
    string : 要匹配的字符串
    flags : 标志位,用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等
    匹配成功则re.search方法放回一个匹配的对象,否则放回None,使用方式与match中的flags相同
    示例如下:

  3. re.matchre.search的区别:
    re.match只匹配字符串的开始,如果开始不符合正则表达式的规则,则匹配失败,函数返回None;而re.search则匹配整个字符串,直到找到一个匹配

  4. 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.

dfas /
Published under (CC) BY-NC-SA in categories Programming  tagged with record