「文字列1」と「文字列2」を入れ替える

「置換」の正規表現サンプル

やりたいこと

「文字列1」と「文字列2」を入れ替える

 

正規表現

「置換前」の指定:(.*)(りんご)(.*)(みかん)(.*)
「置換後」の指定:\1\4\3\2\5

赤文字:メタ文字
※上記の正規表現:文字列1を「りんご」、文字列2を「みかん」とする場合

 

置換結果

置換前

Aさんはりんごが好き。Bさんはみかんが好き。

置換後

Aさんはみかんが好き。Bさんはりんごが好き。

赤文字:入れ替わった文字列

解説

置換前:(.*)(りんご)(.*)(みかん)(.*)
■(.*)
 .:改行以外のすべての文字を表します。
 *:直前のパターンの0回以上の繰り返しを表します。
 よって、.*は改行以外の文字が「ない」あるいは「1文字以上ある」状態を表します。
 ()でくくることにより、その中の文字列を一つのグループとしています。

 一つ目の(.*)は「りんご」より前にある文字列、二つ目の(.*)は「りんご」と「みかん」
 に挟まれている文字列、三つ目の(.*)は「みかん」より後にある文字列を表します。

■(りんご)および(みかん)
 「りんご」及び「みかん」という文字をそれぞれ一つのグループとしています。

置換後:\1\4\3\2\5
 \1:置換前の条件の1つめのグループ(.*)に該当します。
 \4:置換前の条件の4つめのグループ(みかん)に該当します。
 \3:置換前の条件の3つめのグループ(.*)に該当します。
 \2:置換前の条件の2つめのグループ(りんご)に該当します。
 \5:置換前の条件の5つめのグループ(.*)に該当します。

 それぞれのグループの順番を調整する(入れ替える)ことで、文字列の表現をコント
 ロールしています。