目次
システム等によって登録された固定長の数字は先頭が「0」で埋められている場合があります。
例えばこのようなものです。
1 ⇒ 001
10 ⇒ 010
数字を固定長の文字列として扱う理由は様々ですが、システムによっては金額などが0埋めされている場合があり、そのままでは画面表示することはできません。
0埋めされた金額を画面表示させる際は、0埋めを除去するのが一般的です。
今回は正規表現で0埋めされた数字の0埋めを除去する方法をお伝えします。
結論
まずは結論から。
こちらの画像をご覧ください。
置換前
置換前にこちらの正規表現を使用します。
\b0+
「\b」と「0+」の2つのパーツに分けて考えます。
\b
「\b」は、単語の境界の位置という意味になります。
単独で検索するとこのような結果になります。
それぞれの単語の先頭の位置と末尾の位置が検索に引っかかっていることが確認できます。
この「\b」という表現を使用することで、0埋めされている「0」と0埋めされていない数字の「0」を見分けることができます。
※現に「0100」の後ろの0は置換されていません。
0+
「0+」は「0」という文字を1回以上繰り返すという意味になります。つまり、「0」、「00」、「000」いずれも「0+」で表すことができます。
\b0+
上記2つを組み合わせると、単語の境界位置から「0」を1回以上繰り返すという意味になります。
置換後
置換後には空白を設定することで、置換前で検索に引っかかった文字「0」を除去することができます。
これで0埋めされた数字を0埋めなしに変換することができます。
まとめ
今回は正規表現で0埋めされた数字を0埋めなしに変換する方法についてお伝えしました。
前回お伝えした正規表現で数字を0埋めする方法の逆変換になります。
こちらはどんな桁数でも1つの正規表現で対応することができます。
COBOLなどで作成された固定長数値を画面に表示するときなどに使えると思います。
ぜひ色々遊んでみてください。
正規表現についての別記事についてもご覧ください!
★検索
パスワードの正規表現の考え方
「~を含まない行」を検索する方法
「~を含む行」を検索する方法
「~で終わる」を検索する方法
「~で始まる」を検索する方法
正規表現繰り返しの考え方
最短一致検索を行う方法
否定の文字クラス
「または」検索を行う方法
環境による「\d」の動作の違いについて検証
★置換
正規表現置換の考え方
大文字⇔小文字変換を行う方法
キャメルケース⇔スネークケース変換を行う方法
CSVを囲みなし⇒囲みありに変換する方法
CSVファイルの特定のカンマ以降を削除する方法
CSVファイルの必要な箇所だけ残す方法
数字3ケタおきにカンマを挿入する方法
正規表現置換で不要な行を削除し、必要な行だけ残す方法
数字を0埋めする方法
0埋めされた数字を0埋めなしに変換する方法
ファイル名から、拡張子のみを抽出する方法
Javaで正規表現置換を行う方法
また、Udemyという動画教育プラットフォームで動画解説を行っております。
動きを確認しながら丁寧に学習したいという方は、ぜひご覧ください!
コメント