正規表現の検索・置換例その7 数字関連その②

原文ファイルのトリセツ

皆さま、こんにちは。ホンヤク社の成田です。
東京は今週も雨続きで、なんと降水継続日数の記録更新だそうです。皆さまいかがお過ごしでしょうか。

 

今回は、正規表現を使った数字関連の検索・置換方法についてさらにご紹介したいと思います。今回は数字と記号を使用した置換例を中心にお話しします。

 

<例>
・数字続きになっている電話番号にハイフンを挿入したい
検索する文字列:\b([0-9]{3})([0-9]{4})([0-9]{4})\b
置換する文字列:$1-$2-$3
⇒「09012345678」「08098765432」など、電話番号が11桁すべて連続になっているときに、正規表現を使用して「3桁-4桁-4桁」のように間にハイフンを挿入できます。このときに、検索する文字列には「\b」を使用して、11桁より長い数字の途中部分を拾わないようにしたほうが良いかと思います。

 

・4桁の数字に桁区切り記号(Thousand separator)を挿入したい
検索する文字列:\b([1-9])([0-9]{3})\b
置換する文字列:$1,$2
⇒「1000」「1234」など、4桁の数字に桁区切り記号を挿入したいときにこのようにして検索また置換してください。このときに、千の桁の数字が「0」になることはないため、「[1-9]」とすることでより厳密な検索ができます。

 

・4桁以上の数字に桁区切り記号を挿入したい
検索する文字列:([0-9]{1,3})([0-9]{3})
置換する文字列:$1,$2
検索オプション:上方向へ検索する
⇒「1000」「50000」「123456789」など、さまざまな桁数の数字すべてに対して桁区切り記号を挿入したい場合は、少し手間がかかりますが上記のようにして試してみてください。ポイントは [検索オプション] のところで「上方向へ検索する」を選択して数字を逆から置換することです(数字の1の位から数えて3桁で区切るため)。また、7桁以上などの長い数字は一度の置換では不十分なこともあるため、何度か置換を繰り返してください。

 

いかがでしたでしょうか? 数字と記号の組み合わせについて、正規表現を使用してさまざまな置換ができることおわかりいただけたら幸いです。

次回も、もう少し数字関連の検索・置換例についてお話ししたいと思います。