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

Sublime Text:使用正则表达式匹配数字并进行运算替换

实现正则匹配数字并执行运算(递增/自定义运算)的解决方案

普通正则替换(比如$1+1)只是做字符串拼接,不会真正执行数值运算,得用支持「正则匹配+动态表达式求值」的工具或代码来实现,以下是几种常用场景的解决方法:

1. VS Code 可视化操作

VS Code的查找替换支持JavaScript表达式,步骤很简单:

  • 打开查找替换面板(Ctrl+F 切换到替换)
  • 查找框输入正则:(\d\d)\.mp3
  • 替换框输入:${(parseInt($1, 10) + 1).toString().padStart(2, '0')}.mp3
    • 这里padStart(2, '0')是为了保留两位数字格式(比如02→03,而不是2→3),如果不需要可以去掉,直接写${parseInt($1,10)+1}.mp3
  • 勾选「正则表达式」按钮(那个.*图标),点「替换全部」就行

替换后就能得到你要的结果:

Mass in A flat D678 03.mp3
Mass in A flat D678 04.mp3
Mass in A flat D678 05.mp3

2. Python 脚本(适合批量/复杂运算)

如果要处理大量文件或者需要自定义运算(比如乘2、加5),用Python脚本更灵活:

import re

# 可以替换成读取文件的内容
raw_text = """Mass in A flat D678 02.mp3
Mass in A flat D678 03.mp3
Mass in A flat D678 04.mp3"""

# 自定义运算逻辑,这里是+1,你可以改成任意运算
def calc_num(match):
    num = int(match.group(1))
    new_num = num + 1  # 比如改成 num * 2 就是翻倍
    return f"{new_num:02d}.mp3"  # 02d保证两位数字格式

# 执行替换
processed_text = re.sub(r'(\d\d)\.mp3', calc_num, raw_text)
print(processed_text)

3. PowerShell(Windows环境快速处理)

Windows下用PowerShell也能搞定:

$content = @"
Mass in A flat D678 02.mp3
Mass in A flat D678 03.mp3
Mass in A flat D678 04.mp3
"@

# 替换逻辑:匹配数字后转成整数+1,再格式化为两位数字
$content -replace '(\d\d)\.mp3', { '{0:D2}.mp3' -f ([int]$args[0].Groups[1].Value + 1) }

核心思路都是:把匹配到的字符串数字转成数值类型,执行运算后再转回字符串(按需保留格式),普通正则替换做不到这一步,必须借助支持动态求值的功能。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 18:15:42