re模块学习

作者: 洛克黄瓜 | 来源:发表于2018-06-17 23:02 被阅读2次

    未完成
    参考链接

    re.sub使用

    • re是regular expression的所写,表示正则表达式;sub是substitute的所写,表示替换。
    re.sub(pattern, repl, string, count=0, flags=0)
    
    • pattern是正则表达式模板,eg:"$p(?P<delta_days>\d+)d"
    • repl是替换的字符,也可以是替换规则的函数
    • count是替换的次数,默认全部替换
    • flags是一些参数,eg:flags=re.I表明忽略大小写
    import re
    input = "hello, lockeCucumber"
    output = re.sub(r"locke\w+ber", "lucy", input)
    print output  # hello, lucy
    

    re.sub参数repl使用函数

    def _trans_to_date(matched):
            delta_days = int(matched.group("delta_days"))
            today = dtime.date.today()
            date = today - dtime.timedelta(delta_days)
            return "'{}'".format(str(date))
    
    before_sql = "SELECT intersect_count(a, b, [$p0d, $p1d, $p2d] AS count_id FROM s"
    sql = re.sub("\$p(?P<delta_days>\d+)d", _trans_to_date, sql)
    
    print sql # SELECT intersect_count(a, b, ['2018-06-17', '2018-06-16', '2018-06-15'] AS count_id FROM slices
    

    re中match,group的简单使用

    根据写过的代码改个例子,具体理论后续补充吧

    input = "lockeCucumber.[lucy]"
    m = re.match(r"lockeCucumber\.\[(?P<person>\w+)\]", input)
    if m:
        love_person = m.group('person')
        print love_person # lucy
    

    相关文章

      网友评论

        本文标题:re模块学习

        本文链接:https://www.haomeiwen.com/subject/nekgeftx.html