正規表現

正規表現で整数は[0-9]または\d | 符号付きや0を抜いた書き方

整数のうち正負、0抜き、全角込を紹介
記事の要約
  • 正の整数は「^\d+$」「^[0-9]+$」
  • 正負の整数は「^[+-]\d+$」「^-?\d+$」
  • 0を抜いた正の整数は「^[1-9]\d*|0$」
  • 半角数字と全角数字の正の整数は「^[0-90-9]+$」

正規表現での整数

正規表現で整数を表すには次のような表現をします。

// 整数のみの行を指定する場合
^\d+$
^[0-9]+$

上記では0123456789のいずれかで構成される整数を表現します。先頭に「^」末尾に「$」をつけることで、数字の途中だけでヒットするのを防ぎます。ちなみに\dと[0-9]は書き方が違うだけで意味するところは同じです。

符号付きの整数

+または-の符号がついた場合の整数を表現したい場合は次のように記載します。

// +-のいずれかはつく場合
^[+-]\d+$
^[+-][0-9]+$

// +はつかず-はつくかもしれない場合
^-?\d+$
^-?[0-9]+$

さきほどの整数の表現に、+-いずれか片方を意味する「[+-]」を追記しました。「12345」「-67890」のようにプラスはつかないがマイナスはつく場合には「-?」を追記します。

0を抜いた整数

「012」のように 0からはじまる整数を除外したい場合には次のように表現します。

// 先頭が0以外の整数を表す場合
^[1-9]\d*|0$
^[1-9][0-9]*|0$

真ん中の「|」はORを表す記号で「[1-9]\d*」または「0」というのを表しています。「[1-9]\d*」は1〜9で始まる1桁以上の数値を表すため、後半の「0」と組み合わせると全体で「0以上の整数」を意味する形となります。

全角数字を含む整数

全角数字を含む整数を表現する場合には次のように記載します。

// 半角数字と全角数字の両方にマッチ
^[0-90-9]+$

// 環境によっては以下でもOK
^\d+$
^[0-9]+$

「[]」のなかに半角数字と全角数字の範囲を示して1回以上繰り返しの「+」をかいています。きましょう。ただし環境によっては「^\d+$」「^[0-9]+$」のみで半角全角の両方に対応するケースもあります。