如何在RegEx中匹配并替换整行的一部分,同时保留Notepad ++中的某些部分?

时间:2018-05-28 08:35:36

标签: notepad++

我想用Notepad ++替换文件中的逐行替换:

EE_START_RESEARCH;Start researching %s.;STUFF;STUFF;STUFF;STUFF;STUFF;;;;;X

EE_START_RESEARCH;Start researching %s.;;;;;;;;;;X

保留第一个分号前的第一个位和第一个和第二个分号之间的部分相同。分号是这里的分隔符。

我试过这些:

查找:^(.*)$替换:"\1";;;;;;;;;;X

查找:^(.+)$替换:"\1";;;;;;;;;;X

查找:^(.+)$替换:(\1);(\1);;;;;;;;;;X

查找:^(.*)$替换:(\1);(\1);;;;;;;;;;X

任何提示?提前谢谢!

PS。如果它有帮助,文件是来自Hearts of Iron II游戏的.CSV。我需要删除其他语言并仅保留英语(并且它会出现在第一个'列')。

1 个答案:

答案 0 :(得分:0)

  • 控制 + ħ
  • 找到:^EE_START_RESEARCH;Start researching %s\.\K.+?(X)$
  • 替换为:;;;;;;;;;;$1
  • UNcheck Match case
  • 检查环绕
  • 检查正则表达式
  • 请勿检查. matches newline
  • 全部替换

  • 在文档中搜索

<强>解释

^       : beginning of line
  EE_START_RESEARCH;Start researching %s\.
  \K    : forget all we have seen until this position
  .+?   : 1 or more any character but newline, not greedy
  (X)   : group 1
$       : end of line

给定示例的结果:

EE_START_RESEARCH;Start researching %s.;;;;;;;;;;X