复制文件中的部分文本,然后粘贴到文件中同一行的其他位置

时间:2018-12-14 07:45:37

标签: windows-10 text-files

我有一个文本文件(.cs文件),其中包含一些我想从文件内复制到文件同一行中其他位置的信息。

例如,我有类似的东西:

$($_.subfield2)

我希望将UniqueId之后的数字复制并放置在名称末尾的同一行上,就像这样

Random text here { Name = "Important - info", UniqueId = "1110100", More random text};
Random text here { Name = "More Important (info)", UniqueId = "1110101", More random text};
Random text here { Name = "Other Important info", UniqueId = "1110102", More random text};
.
.
.
Random text here { Name = "Other Important info 4/11", UniqueId = "2000110", More random text};

只要在引用的名称和唯一ID之后有一个空格。名称可以是任何东西,每个名称和每一行的UniqueId都是唯一的。这个任务有可能吗?我将尝试任何Windows程序。

1 个答案:

答案 0 :(得分:1)

您可以使用任何支持Regex的文本编辑器来完成您要问的问题。在此示例中,我将使用Notepad ++。首先,我将描述要做的事情,然后在解释正则表达式的工作之后。

示例

  1. 使用Notepad++打开文件。
  2. Ctrl+F弹出Search and Replace窗口。
  3. 确保选中名为Wrap around的框
  4. Regular expression下选择Search Mode
  5. Find What:下插入Name = "(.*)", UniqueId = "(\d+)"
  6. Replace with:下插入Name = "$1 $2", UniqueId = "$2"
  7. 按一次Replace all

Npp-with-regex

了解正则表达式

  • ()这些字符代表您要捕获的组。
  • $1代表您标记为()的第一组
  • $2是同一件事,但需要第二组。
  • \dany digit相匹配。 +后面的数字表示一个或多个数字。
  • .any character相匹配。点后面的*表示匹配零个或多个字符。

在搜索示例Name = "(.*)", UniqueId = "(\d+)"中,我们有两组。在Name和UniqueId的引号之间匹配内容。

在替换示例Name = "$1 $2", UniqueId = "$2"中,我们使用这些组将匹配的内容替换为新的内容。在这种情况下,新的是组$1和组$2的内容。