我有一些文本文件,里面有一些信息,我想把它们从一个地方复制并粘贴到同一行的其他地方。例如,我有类似这样的内容:
Random text here { Name = "Tropical Smoothie", UniqueId = "1110100", More random text};
Random text here { Name = "Tropical Smoothie", UniqueId = "1110110", More random text};
Random text here { Name = "Tropical Mango Smoothie", UniqueId = "1110120", More random text};
.
.
.
Random text here { Name = "Tropical Smoothie", UniqueId = "2000110", More random text};
我想要将 UniqueId 后面的数字复制并放在冰沙在同一行上
Random text here { Name = "Tropical Smoothie 1110100", UniqueId = "1110100", More random text};
Random text here { Name = "Tropical Smoothie 1110110", UniqueId = "1110110", More random text};
Random text here { Name = "Tropical Mango Smoothie 1110120", UniqueId = "1110120", More random text};
.
.
.
Random text here { Name = "Tropical Smoothie 2000110", UniqueId = "2000110", More random text};
只要在引号后面的单词后面有一个空格姓名然后是 UniqueId 数字。名称可以是任意的,但每行的 UniqueId 都是唯一的。
因此,以第一行为例,在文本编辑器中,我将突出显示 1110100 并复制它,并在后面添加一个空格冰沙然后粘贴。然后我会对下一行做同样的事情,依此类推。这个任务能以某种方式自动执行吗?我会尝试任何脚本或 Windows 程序。即使是“每行复制第三个双引号后的 7 位数字并粘贴到第二个双引号前”之类的东西也可以。
答案1
你问了同样的问题堆栈溢出我刚刚给你写了一个答案。我在这里也提供同样的答案。
您可以使用任何支持 Regex 的文本编辑器来完成您的要求。在此示例中,我将使用 Notepad++。首先,我将描述要做什么,然后我将解释 Regex 的作用。
例子
- 使用 打开文件
Notepad++
。 - 按下
Ctrl+F
即可调出Search and Replace
窗口。 - 确保选中名为
Wrap around
- 选择
Regular expression
Search Mode
- 下
Find What:
插入Name = "(.*)", UniqueId = "(\d+)"
- 下
Replace with:
插入Name = "$1 $2", UniqueId = "$2"
- 按
Replace all
一次。
理解正则表达式
()
这些字符代表您想要捕获的组。$1
代表您标记的第一个组()
$2
同样的事情,但它需要第二组。\d
匹配数字后的any digit
.表示匹配一个或多个数字。+
.
匹配点后的any character
.表示匹配零个或多个字符。*
在搜索示例中,Name = "(.*)", UniqueId = "(\d+)"
我们有两个组。匹配 Name 和 UniqueId 引号之间的内容。
在替换示例中,我们使用这些组将匹配的内容替换为新内容。在本例中,新内容是 group和 groupName = "$1 $2", UniqueId = "$2"
的内容。$1
$2