Notepad ++正则表达式累加数字

use*_*879 7 regex math notepad++

如何对所有这些数字求和或添加某个值?例如,我的目标是用"100"增加""中的所有数字,但实现这一点一直存在问题.基本上只是以+100的方式将当前数字相加.

我有以下几行

<devio1="875" devio2="7779" devio3="5635" devio4="154"/>
<devio1="765" devio2="74779" devio3="31535" devio4="544"/>
<devio1="4335" devio2="13" devio3="55635" devio4="1565"/>
Run Code Online (Sandbox Code Playgroud)

通过在Notepad ++中使用此正则表达式

<devio1="([0-9]+)" devio2="([0-9]+)" devio3="([0-9]+)" devio4="([0-9]+)"/>
Run Code Online (Sandbox Code Playgroud)

我可以在""中找到所有数字,但我找不到向所有数字添加+100的方法.可以使用正则表达式使用Notepad ++实现此任务吗?

psx*_*xls 11

在Notepad ++中仅使用正则表达式是不可能的.遗憾的是,无法在替换模式中执行计算.

因此,在Notepad ++中完成任务的唯一方法是使用Python Script插件.

  1. 官方网站或从官方网站安装Python Script插件.Plugin Manager
  2. 然后去Plugins> Python Script> New Script.选择新文件的文件名(例如add_numbers.py)并复制以下代码:

    def calculate(match):
        return 'devio%s="%s"' % (match.group(1), str(int(match.group(2))+100))
    
    editor.rereplace('devio([0-9])="([0-9]+)"', calculate)
    
    Run Code Online (Sandbox Code Playgroud)
  3. 运行Plugins> Python Script> Scripts> add_numbers.py你的文本将被转换为:

    <devio1="975" devio2="7879" devio3="5735" devio4="254"/>
    <devio1="865" devio2="74879" devio3="31635" devio4="644"/>
    <devio1="4435" devio2="113" devio3="55735" devio4="1665"/>
    
    Run Code Online (Sandbox Code Playgroud)


Pet*_*vin 1

正则表达式不支持算术,而 Notepad++ 不支持正则表达式之外的任何计算,因此如果您将自己限制在该工具上,您就会陷入困境。当然,还有许多其他非 Notepad++ 解决方案,其中一些在regex 中的数学运算中进行了讨论。