Tips

【正規表現】 N文字目からN文字、N文字続いた後の末尾N文字 etc.

正規表現が苦手というか、苦手レベルではなく、あまり理解していません。
ネットでこの記事のタイトルのようなキーワードで検索してやり方を盗んでます。

なので、今日調べて試行錯誤した結果を共有したいとおもいます。

目的としては、個人情報(住所や名前など)を含むCSVデータなどをお預かりしたけど、テスト環境などで使用するために伏字に変換をかける必要があったりする場合に、秀丸やさくらエディタなどの高機能テキスト編集ツールでの一括置換したいケースです。

6文字目から3文字を○○○に変換

検索文字列 : (?<=^.{5}).{3}
置換文字列 : ○○○

例)
あいうえおかきくけこさしす → あいうえお○○○けこさしす

5文字以上続いた後の末尾から3文字を○○○に変換

末尾3文字を変換したいのだけど、先頭から5文字は置換しないでそのまま残したい、というような場合

検索文字列 : (.{5})(.{3})$

置換文字列 : $1○○○

例)
あいうえおかきくけこさしす → あいうえおかきくけこ○○○
あいうえおかきく → あいうえお○○○
あいうえおかき → あいうえおかき ※5文字以上のあと3文字分無い場合何も置換されません

先頭から2文字を○○に変換

検索文字列 : ^..
置換文字列 : ○○

例)
あいうえおかきくけこさしす → ○○うえおかきくけこさしす

末尾から2文字を○○に変換

検索文字列 : ..$
置換文字列 : ○○

例)
あいうえおかきくけこさしす → あいうえおかきくけこさ○○

reiko suzuki
OLD SKOOLシステムエンジニア。ねこを撫でながら働いています。