【发布时间】:2021-02-16 13:45:52
【问题描述】:
我正在使用 notepad++ 编辑 YAML 文件,并且由于 NPP 无法使用算术替换数字,我认为也许 python 脚本可以完成这项工作(在 NPP 中使用 PythonScript 插件)。问题是,我在 python 方面非常糟糕,我无法让它工作。我想要做的是将“收入:”后面的所有数字乘以 10:
income: 0.5
points: 0.15
experience: 0.3
我已尝试运行此脚本:
def multiply_number_in_context(match):
return "{0}{1}{2}".format(match.group(1), str(float(match.group(2))*10), '"')
editor.rereplace(r'(income: )(\d+)', multiply_number_in_context)
但它返回以下内容:
income: 0.0".5
points: 0.15
experience: 0.3
对此有什么帮助吗?谢谢!
【问题讨论】:
-
\d仅匹配数字,因此您的匹配不包括小数点和最后 5。对第二个捕获组使用类似([0-9.]+)的内容。 -
我不太明白第二段的目的。对我来说,这看起来不仅仅是一个简单的算术命令。解决方案应该简单且最大。 10行代码