Notepad ++将所有内容替换为异常

时间:2013-10-03 15:43:44

标签: regex replace notepad++

我正在尝试编辑csv文件,下面是此文件的示例行。

|MIGRATE|;|10000|;|2ACC0003|;|30/09/13|;|Positive Adjmt.|;||;|MIGRATE|;|95004U

行的开头| MIGRATE |需要修改而不改变第二个MIGRATE,因此该行将读取

|MIGRATE|;|MIG_IN|;|10000|;|2ACC0003|;|30/09/13|;|Positive Adjmt.|;||;|MIGRATE|;|95004U

有大约7700行,所以如果我被迫手动这样做,我可能会哭一点。

提前致谢!

3 个答案:

答案 0 :(得分:1)

暂时将所有想要更改的内容替换为另一个单词,然后将其余部分替换为您想要的内容。我不确定你在这里问的是什么,但我可以猜到这可能会有所帮助。

答案 1 :(得分:0)

您可以使用行锚的开头:

查找

^(\|MIGRATE\|)

替换为:

$1;|MIG_IN|

regex101 demo

请确保您使用的是“搜索和替换”的正则表达式模式。


如果你想成为一个有点发烧友,你可以使用积极的外观:

查找

(?<=^\|MIGRATE\|)

替换为:

;|MIG_IN|

^只会在一行的开头匹配。

( ... )被称为捕获组,并将匹配的内容保存在您可以使用的变量中(在第一个正则表达式中,我在替换中使用$1访问了变量。存储到$1,第二个存储到$2等。

|是一个特殊字符,表示正则表达式中的“或”(用于匹配字符或字符组或其他字符,例如a|b匹配ab。这样,你需要用反斜杠转义它,使正则表达式与文字|匹配。

在我的第二个正则表达式中,我使用了(?<= ... ),这被称为积极的后视。它确保要匹配的部分具有之前的内容。例如,(?<=a)b仅在b之前与a匹配。因此b中的ab匹配但bb不匹配。

我链接的网站也解释了正则表达式的细节,你可以自己尝试一些正则表达式!

答案 2 :(得分:0)

好像你可以搜索Just search for:

^\|MIGRATE\|

并替换为:

|MIGRATE|;|MIG_IN|

确保您已在“搜索模式”选项中选中了“正则表达式”。

说明:^是一个开始锚;它将匹配行的开头,确保它与第二个|MIGRATE|不匹配。 \个字符必须转义|字符,因为它们通常在正则表达式中具有特殊含义,并且您希望匹配文字|