0

类似于Find and Replace RegEx 问题

我需要做的就是在两个短语“literal”和“edited [;”之间找到一个字符串,然后用相同的字符串替换,省略所有的“//”。我不认为括号反向引用是我想要的,因为我正在使用的文本文件很大,每个字符串中通常有 3 个,有时最多 10 个“//”。

这个:

// --- Literal
//
//At the same time as that, joining in the music
//will be fun, I think.
// --- Edited

应该变成这样:

// --- Literal

At the same time as that, joining in the music
will be fun, I think.
// --- Edited

(Notepad++ 不支持其正则表达式中的换行符,但这与问题无关。在实际文本中,我为 \n 进行了查找替换为“nline”。)

这是我到目前为止所拥有的:

Find:    // --- Literalnline//(.*?)//(.*?)//(.*?)//(.*?)// --- Edited // \[;
Replace: // --- Literalnline\1\2\3\4// --- Edited // \[;
4

1 回答 1

0

一般来说,我不想用正则表达式来做这个,但我还是试了一下:http ://regex101.com/r/tF6bZ1

/\A(\/\/ --- Literal)[\r\n]+|(\/\/ --- Edited)\z|\/\/(.*[\r\n]*)/gi

这不会进行任何类型的任何验证,只是直接上下匹配。您应该可以替换为\1\3\2或此类。

祝你好运!

于 2012-08-26T08:12:27.550 回答