Aur*_*ora 10 python regex flake8
我在 python 中有一个问题。我原来的正则表达式是:
f"regex(metrics_api_failure\.prod\.[\w_]+\.{method_name}\.\d+\.\d+\.[\w_]+\.[\w_]+\.sum\.60)"
Run Code Online (Sandbox Code Playgroud)
(method_name是一个局部变量),我收到了 lint 警告:
"[FLAKE8 W605] invalid escape sequence '\.'Arc(W605)"
Run Code Online (Sandbox Code Playgroud)
这看起来建议我使用r作为正则表达式前缀。但如果我这样做:
r"regex(metrics_api_failure\.prod\.[\w_]+\.{method_name}\.\d+\.\d+\.[\w_]+\.[\w_]+\.sum\.60)"
Run Code Online (Sandbox Code Playgroud)
成为{method_name}字符串类型而不是传入的变量。
有谁知道如何解决这个困境?
小智 20
传入表达式:
r"regex(metrics_api_failure\.prod\.[\w_]+\." + method_name + r"\.\d+\.\d+\.[\w_]+\.[\w_]+\.sum\.60)"
Run Code Online (Sandbox Code Playgroud)
本质上,使用 Python 字符串连接来完成与使用方括号所做的相同的事情。然后,r""类型字符串转义应该可以工作。
或使用原始格式字符串:
rf"regex(metrics_api_failure\.prod\.[\w_]+\.{method_name}\.\d+\.\d+\.[\w_]+\.[\w_]+\.sum\.60)"
Run Code Online (Sandbox Code Playgroud)