テキストの各行をコピーして2行ずつに増やす正規表現を紹介します。
実行環境
今回はサクラエディタと呼ばれる、ボランティアベースで開発されている素晴らしいテキストエディタで正規表現を実行しております。
ただ、正規表現さえ使用可能であれば、エディタは何でも良いかと思います。
解決したい事象
例を見たほうが分かりやすいかと思われますので、下記の通り例を示します。
事象の例
例としては下記の通り、文字列が並んでいるとします。
※分かりやすくするため、行数は短めで適当な内容です。
あいうえお
かきくけこ
さしすせそ
上記の文字列に示した各行を、コピーして2行ずつにすることを考えます。
あいうえお
あいうえお
かきくけこ
かきくけこ
さしすせそ
さしすせそ
使用する正規表現
エディタの「置換前」および、「置換後」の指定で、下記の正規表現を指定します。
サクラエディタの場合、Ctrl+Rで置換ダイアログが出てきますので、そこで下記の値を指定します。(なおサクラエディタの場合、この際「正規表現」のチェックボックスにチェックを入れないと正規表現で認識されないので注意が必要です。)
置換前
^(.+)$
行の先頭から行の末尾までのすべての文字列を抽出します。
置換後
$1\r\n$1
置換前で抽出した文字列は$1に格納されます。そして、\r\nは改行を表しています。
抽出した文字列($1)の間に、改行コード(\r\n)を挟んで、もう一度抽出した文字列($1)を挟みます。
各行の置換後は「抽出した文字列」+「改行」+「抽出した文字列」となります。
サクラエディタでの入力例
サクラエディタを例とした場合、置換ダイアログに下記の通り記述します。
正規表現のテスト実行
正規表現実行前
下記のテキストに対して、先ほどの正規表現を使用して全て置換してみます。
正規表現実行後
無事に各行が2行ずつに増えていることが確認できました。
1行を3行ずつに増幅させるには
1行から3行ずつにする場合はどうすればよいでしょうか。
2行に増やすケースと要領は全く一緒です。
置換前
^(.+)$
置換後
$1\r\n$1\r\n$1
更に各行を増やしたい場合は、増やしたい数だけ「\r\n$1」を増やせばOKです。
以上です。