zoukankan      html  css  js  c++  java
  • 项目实战七---re正则匹配关联用例,有效解决上下接口依赖

    正则表达式:用来使用某种规则匹配字符串当中的子串

    regular expression:正则表达式

    最基本的用法

    import re

    my_string = "jintianhenmeihao"

    pattern="hao"

    result = re.search(pattern=pattern,string=my_string)

    print(result)----<re.Match object; span=(13, 16), match='hao'>得到匹配对象

    print(result.group()) # 得到最终的结果,group中默认值为0,要得到的匹配到的字符串,一定要加group()

     元字符

    [abc] 匹配[]中任意一个字符

    . 匹配任意一个除了 外的字符

    {m,n} 匹配某个字符m~n次如d{11,13}匹配数字11~13次

    re.search(pattern,string),只会匹配一次,findall匹配多次,finditer匹配结果是可迭代的

    Python默认是贪婪模式,如每次都是尽可能的匹配最多的

    * 匹配任意字符0次或者任意次

    ? 匹配0次或者1次,非贪婪模式

    .*? 常用组合:尽可能少的匹配任意字符

    单字符

    w 匹配一个字母、数字、下划线。等价于'[A-Za-z0-9_]'

    d 匹配一个数字字符。等价于 [0-9]。

    +匹配任意字符1次或者任意次

    ()分组

    边界:

    ^开头

    $结尾

    正则表达式学习:

    https://www.runoob.com/regexp/regexp-tutorial.html

    re正则匹配关联用例

    middleware中间件handler.py中设置类属性

    # 类属性数据
    exist_username = security_yaml_data['username']
    wrong_username = security_yaml_data['wrong_username']
    exist_email = security_yaml_data['email']
    password = security_yaml_data['password']
    wrong_password = security_yaml_data['wrong_password']

    # 数据替换
    @classmethod
    def data_replace(cls,re_str,pattern="#(.*?)#"):
    results = re.finditer(pattern=pattern,string=re_str)
    for result in results:
    key = result.group(1)
    new = str(getattr(cls,key,""))
    old = result.group()
    re_str = re_str.replace(old,new)
    return re_str

    本文来自博客园,作者:%女王%,转载请注明原文链接:https://www.cnblogs.com/lynne-wu/p/14458856.html

  • 相关阅读:
    创建目录(单个目录和多级子目录)方法
    C++中创建目录
    C/C++中判断某一文件或目录是否存在
    Eclipse快捷键大全(转载)
    关于注册模型失败的分析
    框架Model注册失败
    nop中导航属性的写法
    CodeFirst中导航属性的代码实现 理解
    MVC下验证码
    Androidi学习笔记 1
  • 原文地址:https://www.cnblogs.com/lynne-wu/p/14458856.html
Copyright © 2011-2022 走看看