首页 > 解决方案 > 使用 re.sub() 将模式大写并在该模式之前添加一些文本

问题描述

这篇文章是我上一个问题的后续。

所以我有以下字符串。

string = "A / (1 + e ^ (-1 * X))"

而且我想创建一个函数来输出一个字符串,该字符串具有所有小写字母序列,而前一个字符串中的括号后面没有以大写字母写成Math.

例如

(1 + e)会回来(1 + Math.E)
(5 ^ 2 * pi)会回来(5 ^ 2 * Math.PI)

这是我到目前为止所拥有的

re.sub(r'([a-z]+)(?!\(.*?\))(?![a-z])', r'Math.\1', func)

正则表达式工作正常,但我不知道如何将模式大写。

标签: pythonregex

解决方案


只需使用一个功能,即

re.sub(r'([a-z]+)(?!\(.*?\))(?![a-z])', lambda x: f'Math.{x[1].upper()}', s)

推荐阅读