我希望能够替换打开的 .txt 文件中的某个字符串文本记事本++但使用的不仅仅是简单的文本替换。我需要一个查询来搜索以以下内容开头的字符串:
# Model Data Entry xxx
然后将同一行上的任何内容替换为:
# Model Data Entry yyy
其中 xxx 是任意随机数,yyy 从 0 开始按数字顺序升序替换文本文件中的第一个实例后面每个条目的值都增加 1。例如:
原文:
# Model Data Entry 69
# Model Data Entry 119
# Model Data Entry 3
# Model Data Entry 71
# Model Data Entry 45
处理过的文本:
# Model Data Entry 0
# Model Data Entry 1
# Model Data Entry 2
# Model Data Entry 3
# Model Data Entry 4...
需要注意的是,在所有的# 模型数据输入
答案1
您可以在 PythonScript 插件中运行 Python 脚本。
如果尚未安装,请按照此操作指导
创建脚本(插件>> PythonScript >> 新脚本)
复制此代码并保存文件(例如calculate.py
):
import re
counter = -1
def calculate(match):
global counter
counter += 1
return ' ' + str(counter)
editor.rereplace('(?<=# Model Data Entry)\h*\d*', calculate)
- 打开要更改的文件
- 运行脚本(插件>> PythonScript >> 脚本>> 计算)
- 完毕
截图(之前):
截图(之后):
答案2
如果不使用脚本语言,这种替换非常困难,正如@Toto 使用 Python 所展示的一个例子。原生 Windows Powershell 的一个示例:
$i=0;(gc "Filepath")|%{if($_ -match "^# Model Data entry.*"){$_ -replace "^#\sModel\sData\sEntry\s\d+$","# Model Data entry $($i)";$i++}else{$_}}|Set-Content "Filepath"