0

正規表現の検索と置換の質問に似ている

「literal」と「edited [;」という 2 つのフレーズの間の文字列を見つけ、「//」をすべて省略して同じ文字列に置き換えるだけです。私が使用しているテキスト ファイルは巨大で、各文字列に通常 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 に答える