このテキストを含む行が大量にあります。たとえば、次のテキストです: 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 が一意のマーカーではない場合は、データをより深く理解して、その特性の一般的な正規表現を構築する必要があります。