普段から大量のデータを手作業で加工していたりしませんか?
- 集計データから特定の文字列を含むゴミデータを削除
- 複数の行に対して、特定文字の前や後の文字を削除
- 特定文字を含まない行を削除
これを手動でやったり、Excelで頑張ったり、いちいちマクロ組んだりするのは大変ですよね。
これらは、さくらエディタというツールを使えば、瞬殺で片づけられます。
今回は、現役SEがよく使用する文字列置換の方法について紹介します。
さくらエディタを持っていない人はココから入手しましょう。
フリーウェアなのですぐに使えます。
空行を削除する
複数行から文字のない空行だけを削除したいときに使えます。
エンジニアの方ではなくても使用する頻度は多いのではないでしょうか。
変換前の文字列
今回はこんな感じのテキストを用意してみました。
本当は数千行くらいの変換しがいのあるファイルを用意したいところですが、ブログに載せられないので数行にしています。
置換用の文字列
空行を削除するための文字列に「^\r\n」を指定します。
以下はさくらエディタで指定する例です。「正規表現」という欄にチェックを入れるのを忘れないでくださいね。
変換後の文字列
空行が消えました。簡単ですね!
フルパスからファイル名を取得する
こちらもエンジニアに関わらずパソコンを使用する方はよく使うと思います。
変換前の文字列
フルパスが記載されている行を3行用意しました。
「3行くらいなら手動でやったほうが早い」というツッコミはなしでお願いします。
置換用の文字列
最後のエンサイン(¥)から左側を削除するために、正規表現「^.*¥¥ 」を指定します。
変換後の文字列
ファイルパスだけ残りました。
指定した文字よりも前を削除する
複数行から特定の文字列の左側を削除したい!というケースです。
使用頻度は低めですが、手でやっていると時間がかかるしミスしやすいですよね。
変換前の文字列
置換用の文字列
指定する正規表現の文字列は「 (.*)(?=【文字指定】) 」です。
少し複雑ですが、便利なので頑張って覚えましょう。
変換後の文字列
上記の例では、「111」の左側の文字がちゃんと消えていますね。
指定した文字よりも後を削除する
上で説明した「指定した文字よりも前を削除する」の後バージョンです。
変換前の文字列
置換用の文字列
置換前の文字列に「 (?<=【文字指定】).*$ 」を指定します。
変換後の文字列
上記の例では「111」の右側の文字が消えました。
指定した文字が含まれる行を削除する
これは意外と使用するケースが多いと思います。
こんなの1行ずつ手で削除していたら白髪が増えそうですね。
変換前の文字列
置換用の文字列
置換前の文字列に「 .*【文字指定】.* 」を指定します。
変換後の文字列
上記の例では「111」という文字が含まれている行の文字列が削除されました。
行自体を削除したい場合は、最初に説明した「空行を削除する」と合わせて使用するか、「.*【文字指定】.*\r\n」で置換すれば最初から行も削除できます。
指定した文字が含まれない行を削除する
たまに使うことがありますので押さえておきましょう。
変換前の文字列
置換用の文字列
置換前の文字列に「 ^((?!【文字指定】).)*$ 」を指定します。
変換後の文字列
上記の例では「111」が含まれていない行の文字が消えました。
2つの指定した文字の間の文字を削除する
使用するケースはあまりないですが、正規表現以外でやるのは結構大変です。
変換前の文字列
置換用の文字列
置換前の文字列に「 【文字指定】(.+?【文字指定】) 」を指定します。
変換後の文字列
上記の例では「111」と「222」で囲まれた文字が消えました。
指定した文字「111」と「222」も消えるので注意しましょう。
まとめ
正規表現のパターンは無限にあるので、根本を理解しないとなかなか使いこなすのは難しいです。
まずは本記事の正規表現をコピーして使用して、慣れてきたら徐々に覚えていくのが良いでしょう。
「これも使える!」という便利な置換例がありましたらコメントお待ちしています。
コメント