python - 如何同时满足“[FLAKE8 W605]无效转义序列'\.'”和字符串格式?
问题描述
我在 python 中有一个问题。我原来的正则表达式是:
f"regex(metrics_api_failure\.prod\.[\w_]+\.{method_name}\.\d+\.\d+\.[\w_]+\.[\w_]+\.sum\.60)"
(method_name
是一个局部变量),我收到了一个 lint 警告:
"[FLAKE8 W605] invalid escape sequence '\.'Arc(W605)"
这看起来像建议我r
用作正则表达式前缀。但如果我这样做:
r"regex(metrics_api_failure\.prod\.[\w_]+\.{method_name}\.\d+\.\d+\.[\w_]+\.[\w_]+\.sum\.60)"
成为字符串类型而{method_name}
不是传入的变量。
有谁知道如何解决这个困境?
解决方案
传入表达式:
r"regex(metrics_api_failure\.prod\.[\w_]+\." + method_name + r"\.\d+\.\d+\.[\w_]+\.[\w_]+\.sum\.60)"
本质上,使用 Python 字符串连接来完成与使用括号相同的事情。然后,r""
类型字符串转义应该可以工作。
或使用原始格式字符串:
rf"regex(metrics_api_failure\.prod\.[\w_]+\.{method_name}\.\d+\.\d+\.[\w_]+\.[\w_]+\.sum\.60)"
推荐阅读
- reactjs - 更改使用动画 API 的动态卡片平面列表的 ZIndex
- python - Keras 精度返回 0
- kubernetes-ingress - 如何为非 ssl 和 ssl 端口设置 AWS ALB 入口默认操作
- sql-server - Visual Studio 中的时间间隔
- c++ - 标准的意图是任何形式的“嵌套类型说明符后跟一个标识符”都可以称为限定ID
- php - 语法错误,PHP 脚本中出现意外的“endforeach”(T_ENDFOREACH)
- javascript - 我正在尝试制作一个 if 语句,对我的对象数组中的不同类型的值进行排序
- python - python3字符串比较像'9'<'10'
- python - 无法在 Python 中跨多个对象使用相同的 SQLite 连接
- javascript - 我怎样才能优化这个javascript代码(电子表格getelementid)