検索・置換を爆速化させる正規表現 Part 2

正規表現の使用例1
名前の表記が 姓 – 名 の順になっていたとします。これを一回で逆にしてみます。
Lennon John McCartney Paul Harrison George Starr Ringo | → | John Lennon Paul McCartney George Harrison Ringo Starr |
例のように4行くらいならカット&ペーストで編集した方が早いと思いますが、これが1000行とかあったら悪夢ですよね...
置換に使用する正規表現の例
検索する文字:(.+)\s(.+)
置換後の文字:$2 $1
検索の正規表現を分解すると、
....任意の一文字(なんでもいいので一文字)にマッチ
+...直前の文字の1個以上繰り返しにマッチ
\s...スペースにマッチ
になります。
つまり(.+)\s(.+)は、
(一文字以上の文字列)スペース(一文字以上の文字列)
という意味になります。
また、単に検索するだけであればカッコは必要ありませんが、この例では置換で再利用する部分をカッコでくくっています。
置換に使用する$2 $1は、$2が2番目のカッコ内、$1が1番目のカッコ内に該当します。
テキストエディターで置換を実行する
正規表現が使えるテキストエディターならなんでもいいのですが、今回はマイクロソフトのVisual Studio Codeを使っています。
VS Codeは置換後のプレビューが表示されるので便利です。インストール方法などはこちら。
左の検索アイコンをクリック。


置換のテキストボックスが表示されない場合は左の▲をクリック。


検索と置換の欄に入力します。


「正規表現を使用する」ボタンをクリック。


「すべて置換」をクリック。


置換後。


他のテキストエディターでも操作は同じです。


正規表現の使用例2
次に、名前の表記が 姓 名 - 姓 名 の順になっていたとします。これも一回で逆にしてみます。
Lennon John – McCartney Paul | → | John Lennon – Paul McCartney |
検索する文字:(.+)\s(.+)\s-\s(.+)\s(.+)
置換後の文字:$2 $1 – $4 $3
正規表現で検索します。


置換後。


ディスカッション
コメント一覧
まだ、コメントがありません