跳到内容

unnecessary-regular-expression (RUF055)

有时提供修复。

此规则不稳定且处于预览状态。使用需要 --preview 标志。

作用

检查 `re` 模块的使用是否可以用内置的 `str` 方法替换。

为什么这不好?

直接对字符串执行检查可以使代码更简单,可能需要更少的转义,并且通常会更快。

示例

re.sub("abc", "", s)

建议改为

s.replace("abc", "")

详情

当调用的第一个参数是一个纯字符串字面量,并且没有传递额外的标志时,该规则会报告以下调用:

  • re.sub
  • re.match
  • re.search
  • re.fullmatch
  • re.split

对于 `re.sub`, `repl` (替换)参数也必须是字符串字面量,而不是函数。对于 `re.match`,`re.search` 和 `re.fullmatch`,返回值也必须仅用于其真值。

修复安全性

如果受影响的表达式包含注释,则此规则的修复被标记为不安全。否则,可以安全地应用此修复。

参考