【テキストエディタ】CSVの1,2列目を入れ替えなどをテキストエディタで行う
# 正規表現
テキストエディタで置換するときにPythonで言うre.match、JavaScriptの”hoge”.matchのように、正規表現でマッチした部分を使いたくなるときってありますよね。
コード中のシングルクォーテーションかダブルクォーテーションどっちかに統一はしたくなるとか…
“hello world!!” を ‘hello world!!’ なら良いのですが、単純な置換ではなく特定の文字を最後に移動したいなどなど
方法
①正規表現でマッチさせたもののうち抜き出したい部分を()でグループ化する
②置換する際に$1、$2のような形で指定すると、マッチした部分の文字列で置換できます。 (マッチした順番で1,2,3になるのが普通みたいです。)
※少なくともPyCharm、NotePad++、さくらエディタあたりは上記でできるようです。
使用例
ダブルクォーテーションをシングルクォーテーションに統一する
はい、PythonやJavaScriptとかだと人によって違うので修正面倒ですよね。 単純な全置換だと問題起こしやすい(多分)ので、囲われている部分を置換してあげました。
検索正規表現: ”(.+)”
置換文字列: ’($1)‘
CSVファイルの1列目と2列目を入れ替える
エクセルでやると注意しないと勝手に文字が置き換えられたり、文字コード変わったり処理が遅かったり… そんな場合にもテキストエディタ+正規表現でいい感じです。
検索正規表現: ^(.*),(.*),
置換文字列: “$1”,
空白区切りの文字列をCSV化する
検索正規表現: (\S+)(\s*)
置換文字列: $2,$1,
例)
置換前)年齢 性別 住所 出勤数 欠勤数 開始日 スコア1 スコア2
置換後)“年齢”,“性別”,“住所”,“出勤数”,“欠勤数”,“開始日”,“スコア1”,“スコア2”,
ここら辺の置換機能ってめちゃくちゃ便利ですね… 非エンジニアな人にも正規表現は広まるべき。
こういう初歩的だけど使えるテクニックはもっともっと知っていきたい