さくらエディタで、以下のように「重複がない行」の各行を複数行に複製したい場合の効率的な方法をご紹介します。
何を言っているかというと、以下の「before」の状態を「after」のように変更したい場合の簡単なやりかたの紹介です。
before
1 2 3 4 5 |
/hoge/kamo/tora1/ /hoge/kamo/torat2/ /hoge/kamo/ratora3/ /hoge/kamo/torator4/ /hoge/kamo/toratora5/ |
になっている行を
after
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
/hoge/kamo/tora1/ /hoge/kamo/tora1/ /hoge/kamo/tora1/ /hoge/kamo/tora1/ /hoge/kamo/torat2/ /hoge/kamo/torat2/ /hoge/kamo/torat2/ /hoge/kamo/torat2/ /hoge/kamo/ratora3/ /hoge/kamo/ratora3/ /hoge/kamo/ratora3/ /hoge/kamo/ratora3/ /hoge/kamo/torator4/ /hoge/kamo/torator4/ /hoge/kamo/torator4/ /hoge/kamo/torator4/ /hoge/kamo/toratora5/ /hoge/kamo/toratora5/ /hoge/kamo/toratora5/ /hoge/kamo/toratora5/ |
以下の流れで実施します。
- 正規表現を見つける
- 複製したい行の数だけ「$1」を書く
正規表現を見つける
では、さっそく見てみましょう。
前に示した「before」で共通しているのは「/hoge/kamo/」の部分。
これを正規表現であらわす必要はありません。
残りの部分ですが、「tora1/」や「toratora5/」となっており、最後は「/」で終わっています。
「tora1」や「toratora5」の部分は5~9文字ですね。ここは「\w{5,9}」とあらわすことができます。
ここまでをまとめると以下のようにあります。
1 |
/hoge/kamo/\w{5,9}/ |
そして忘れていはいけないのが行の最後が改行コードになっていること。改行コードは「\r\n」とあらわすことができます。
以上を考えると、この部分は正規表現で以下のように表示できます。
1 |
/hoge/kamo/\w{5,9}/\r\n |
最後に、これらを「()」でくくります。
1 |
(/hoge/kamo/\w{5,9}/\r\n) |
こうすることで、この文字列に該当するものを$1として表現できます。
逆にこのようにしないと、「$1」は該当する箇所で最初に登場した正規表現、この場合は「\w{5,9}」になってしまいます。全体を一つとして表現するため「()」で括ります。
なお、「/」は「\/」と書いても問題ありません。
複製したい行の数だけ「$1」を書く
今回は同じ行を4つ複製しています。つまり、変換後の文字列を「$1$1$1$1」とすれば良いわけですね。
さくらエディタでは「Ctrl + r」を押すことで置換をするできます。
「正規表現」の欄にチェックを入れて、「置換」もしくは「すべて置換」をクリックすれば置換が実行されます。
まとめ
まとめると以下のようになります。
さくらエディタで「Ctrl + r」を押し、置換できる状態にする。
「置換前」「置換前」に以下の文字列を入力する。
・「置換前」に入力する文字列
1 |
(/hoge/kamo/\w{5,9}/\r\n) |
・「置換後」に入力する文字列
1 |
$1$1$1$1$1 |
「正規表現」の欄にチェックを入れて、「置換」もしくは「すべて置換」をクリックすれば置換が実行されます。
このようにすれば、「重複がない行」の各行を、複数行複製することができます。
数行の場合はこんなことやらなくてもいいんですが、1000行を超える場合とはこういったことをやると非常に時間を節約できます。
是非試してみください!