やりたいこと
2項目目と4項目目を入れ替える
正規表現
「置換前」の指定:(".*?",)(".*?",)(".*?",)(".*?",)(".*?")
「置換後」の指定:\1\4\3\2\5
※赤文字:メタ文字
※上記の正規表現:csvファイル内の1行のカラムを5カラムとする場合
置換結果
置換前
"梨","柿","みかん","ぶどう","いちご"
置換後
"梨","ぶどう","みかん","柿","いちご"
※赤文字:入れ替わった文字列
解説
置換前:(".*?",)(".*?",)(".*?",)(".*?",)(".*?")
■(".*?",)
.*?は最左の最短マッチを表します。
()でくくることにより、その中の文字列を一つのグループとしています。
一つ目の(".*?",)は一つ目に「"~",」となる部分を指し、二つ目から四つ目は同様に
二つ目から四つ目の「"~",」となる部分を指します。
※?を含まない「(".*",)」とした場合、上記の例でいうと「"梨",」ではなく、
「"梨","柿","みかん","ぶどう",」にマッチしてしまいます。
■(".*?")
.*?は最左の最短マッチを表します。
()でくくることにより、その中の文字列を一つのグループとしています。
4つの(".*?",)と組み合わせていることにより、4つ目の("~",)以降の("~")にマッチ
します。
※4つの(".*?",)と組み合わせない場合、「"梨"」「"柿"」「"みかん"」「"ぶどう"」
「"いちご"」にマッチしてしまいます。
置換後:\1\4\3\2\5
\1:置換前の条件の1つめのグループ(".*?",)に該当します。
\4:置換前の条件の4つめのグループ(".*?",)に該当します。
\3:置換前の条件の3つめのグループ(".*?",)に該当します。
\2:置換前の条件の2つめのグループ(".*?",)に該当します。
\5:置換前の条件の5つめのグループ(".*?")に該当します。
それぞれのグループの順番を調整する(入れ替える)ことで、文字列の表現をコント
ロールしています。