项目实战七---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] 匹配[]中任意一个字符

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

{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

 

posted @ 2021-02-28 14:22  %女王%  阅读(139)  评论(0编辑  收藏  举报