Python 3.15 将软弃用 re.match()

Simon Willison6 天前

Python 有一种“软弃用”机制:某个 API 会被标记为“不应再用于编写新代码”,但这并不意味着它未来一定会被移除。

在即将发布的 Python 3.15 中,长期存在但容易引发误解的 re.match() 将被软弃用。它会有一个语义更清晰的替代名称:re.prefixmatch()

这个新名称更准确地表达了它的行为:

  • re.match() / re.prefixmatch():从字符串开头开始匹配,但不要求匹配到字符串结尾。
  • re.search():在字符串任意位置查找匹配。
  • re.fullmatch():要求整个字符串都匹配模式。

因此,在多数场景下,如果你想判断模式是否出现在字符串中,通常应使用 re.search();如果你想确认整个字符串都符合某个模式,则应使用 re.fullmatch()

这次调整的重点不是立即移除旧 API,而是通过更明确的命名引导新代码使用更不容易误解的接口。

评论

请登录后发表观点

暂无数据