You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Notepad++ Python脚本批量乘特定字符串后的整数?

批量修改特定字符串后的数字(Notepad++ Python脚本)

已在Notepad++中安装Python脚本插件,能否批量将特定字符串后的所有数字进行乘法运算?例如存在大量类似ExperienceGained 10 + X的行,需将所有X的值乘以3。尝试了以下代码但未成功:

def multiply_number_in_context(match):
    return "{0}{1}{2}{3}".format(match.group(1), str(int(match.group(3))*3), '"')

editor.rereplace(r'(ExperienceGained 10 + )(\d+)"', multiply_number_in_context)

你的代码存在几个关键问题,修正后即可正常运行:

  • 正则表达式中的+是特殊元字符(表示匹配前一个字符1次或多次),需要转义成\+才能匹配字面意义的加号
  • 原正则仅定义了2个分组,但你在函数中调用了match.group(3),会引发索引错误;同时原正则末尾的"在你的示例行中不存在,属于多余的匹配规则
  • 字符串格式化的参数对应错误,无需额外的占位符

修正后的代码:

def multiply_number_in_context(match):
    # group(1) 匹配前面的固定前缀字符串,group(2) 匹配需要乘以3的数字
    return f"{match.group(1)}{str(int(match.group(2))*3)}"

# 转义加号,移除多余的引号匹配,确保正则精准匹配目标行
editor.rereplace(r'(ExperienceGained 10 \+ )(\d+)', multiply_number_in_context)

如果你的实际文本行末尾带有引号(比如格式为ExperienceGained 10 + X"),只需将正则调整为r'(ExperienceGained 10 \+ )(\d+)"',并把函数返回语句改为return f"{match.group(1)}{str(int(match.group(2))*3)}\""即可。

内容的提问来源于stack exchange,提问作者Snadd

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 04:13:16