• 正则表达式


    正则表达式解析
        为什么引入正则表达式?
        (正则匹配)用来匹配一类具有相同规则的字符串
        (正则替换)将匹配得到的字符串进行替换
    
    规则:
        单字符:
            . : 除换行以外所有的字符
            []:[nxr] [a-z] 匹配中括号中任意一个字符
             d:数字 0-9
             D:非数字
             w:数字,字母,下划线,中文
             W:非w 
             s: 所有的空白字符
             S:非s
        数量修饰:
            * : 任意多次 >=0
            + : 至少一次 >=1
            ?: 0次或者1次
            {m}: m次
            {m,}:至少m次
            {m,n}:匹配[m,n]次
        边界:
            , B
            ^: 以某某开头
            $: 已某某结尾
        分组:
            (){4} 视为一个整体
            ()    1 2  子模式
                import re
                string = '<p><div><span>李四</span></div></p>'
                # pattern = r'<p>(.*?)</p>'
                pattern = r'<(w+)><(w+)>w+</2></1>' 
                pattern = re.compile(pattern)
                result = pattern.search(string)
                print(result)  # <re.Match object; span=(3, 29), match='<div><span>    李四</span></div>'>
        贪婪模式:
            .*?
            .+?
        re.I 忽略大小写
        re.M 多行匹配
        re.S 单行匹配 可以使.匹配任意字符(包括换行符)
        match/search/findall
        re.sub(正则表达式,替换的内容(函数),带匹配的字符串)
            import re
            def fun(s):  # s为正则匹配得到的字符串
                ret = int(s.group()) - 10
                return str(ret)
            string = '我喜欢身高为170的女孩'
            pattern = r'd+'
            pattern = re.compile(pattern)
            result = pattern.sub(fun, string)
            print(result)  # 我喜欢身高为160的女孩
  • 相关阅读:
    Swoole 协程使用示例及协程优先级
    Swoole 协程简介
    Laravel Redis分布式锁的使用
    Laravel Redis分布式锁实现源码分析
    Swoole 中使用异步任务
    runtime相关面试
    oc笔试题
    属性关键字面试题
    KVC面试题
    KVO面试题
  • 原文地址:https://www.cnblogs.com/nxrs/p/11334444.html
Copyright © 2020-2023  润新知