统计 x, y, z,
x/y/z 是数字。notepad++ 中是否有任何正则表达式命令允许我替换文件中与模式 (stat x、y、z,(请记住,代表 x/y/z 的数字会有所不同)) 匹配的所有文本,从而将 x 减少 2,将 y 和 z 减少 1?
答案1
不,您无法使用内置正则表达式引擎对捕获组进行内联操作。您可以做的是聪明一点,使用正则表达式自动为您编写一个可以完成您想要的工作的脚本,然后运行该脚本并保存该脚本的输出。
正则表达式捕获数字:
^stat ?([0-9]+), ?([0-9]+), ? ([0-9]+)$
正则表达式的解释:
^
行首- “stat”字符串文字
?
可选空间([0-9]+)
贪婪匹配任意数字序列、1 个或多个字符。,
逗号文字?
可选空间([0-9]+)
贪婪匹配任意数字序列、1 个或多个字符。,
逗号文字?
可选空间([0-9]+)
贪婪匹配任意数字序列、1 个或多个字符。$
行结束
您可以将其放入查找字段中,标记为正则表达式搜索。然后在“替换为”字段中,您可以放入以下表达式:
@set /a sa=\1-2\n@set /a sb=\2-1\n@set /a sc=\2-1\necho stat %sa%, %sb%, %sc%\n
然后,您可以点击全部替换并将新生成的文本保存到批处理文件中并运行它,它将打印出您修改的值。这不会让您 100% 地实现完全自动化的机制。您需要有一个额外的变量,将每个新行附加到该变量中,然后仅打印一次即可获得可以直接传输到文件的干净输出。但这可以让您实现 99% 的目标。