各行のテキストの中央に文字を追加する、Notepad++

各行のテキストの中央に文字を追加する、Notepad++

このテキストを含む行が大量にあります。たとえば、次のテキストです: OU111_DI_Z006_1

一部の文字は行ごとに異なり、@ で表されます。例: OU@@@_@@_Z0@@__@

検索置換機能を使用して、文字 X を Z の前に追加するにはどうすればよいですか?

こんな感じ: OU111_DI_XZ006_1

答え1

置換ウィンドウマーク正規表現そして

検索対象: (OU..._.._)(Z0.._.)

と置換する: \1X\2

http://docs.notepad-plus-plus.org/index.php/Regular_Expressions

答え2

これはデータによって異なります。文字「OU」と「Z0」は、各サブ文字列の開始を示すために固有のものですか...それとも、これらはランダムに表示されますか (例: OU222_Z0_Z055...)?

これらが一意であり、各部分文字列の先頭以外の場所に出現する可能性がない場合は、単純な正規表現が非常に一般的に機能します。

Find:  (OU.*)(Z0.*)
Replace:  \1X\2

ここでは、OU で始まるすべてのもの (.*) を "\1" としてグループ化しています。また、Z0 で始まるすべてのものを "\2" としてグループ化しています。(括弧によってグループが作成されます。)

置換文字列は、グループ 1 と 2 の間に X を配置するだけです。

注: これは marbel82 の回答と非常に似ていますが、アンダースコアと文字がいくつ存在する必要があるかを指定していないため、より一般的です。

..

ただし、OU と Z0 が一意のマーカーではない場合は、データをより深く理解して、その特性の一般的な正規表現を構築する必要があります。

関連情報