開発ブログ

WWWクリエイターズが送る、Git、CSS、HTML、コマンドライン、Macの便利機能など、開発に関する役立ち情報発信します。気まぐれに更新。

正規表現:n桁の数字の文字列の表現。

最終更新:2017-09-21 by Joe

基本的な正規表現。2桁、3桁、4桁・・、と桁数を指定して数字を探します。

文字クラス「[]」による利用文字の限定と、量指定子「{n}」とを組み合わせると簡単です。

量指定子を使った数字の桁数の指定

n桁の数字列

文字クラスで半角数字のいずれか、量指定子で具体的な文字の数を書きます。例えば、これで4桁の数字を表せます。

n桁以上の数字列

量指定子は便利で、繰り返しの数「〜以上〜以下」といった表現が可能です。

n桁以上、n桁以下の数字列

n桁以下の数字列

上記の表現から推測がつくと思いますが、上限を設定することもできます。

量指定子については、こちらのまとめましたので、ぜひご覧ください。

数字を含む複雑な文字列の表現

さて、数字だけでなく、数字を含む文字列をうまく表現する例をいくつか紹介します。

特定の大きさの範囲の数字

特定の大きさの数字を、範囲を指定して探します。正規表現のみでは、数字の大小は比較できないので、桁ごとに文字列を区切って探します。

国内で有効な携帯電話番号の数字

上記の応用です。フォームに入力された文字列のバリデーションに利用できる、かもしれませんね。

両指定子「?」は、0〜1回の出現にマッチしますので、ハイフンがあるもの、無いもの、いずれもマッチすることができます。

 

以上です。量指定子をうまく利用し、また、対象にしている数字の桁数や、他の文字の出現の仕方をうまく捉えることで、柔軟なマッチングが可能になると思います。

 


参考情報

参考情報をまとめておきます。

正規表現の両指定子

今回利用した、両指定子についてまとめておきます。いったん覚えてしまうとスラスラ書けるようになるでしょう。

量指定子(最長一致)最短一致意味
**?直前のパターンの0回以上連続
++?直前のパターンの1回以上連続
???直前のパターンの0回か1回の出現
{N} - 直前のパターンのN回の連続
{min,}{min,}?直前のパターンのmin回以上の連続
{,max}{,max}?直前のパターンのmax回以下の連続
{min,max}{min,max}?直前のパターンのmin回からmax回の連続

文字クラス [0-9] の代わりに、特殊文字「\d」を利用することもできます。ほぼ同義なのでお好みで使い分けるとよいでしょう。特殊文字「\d」の利用

 

特殊文字に関してはこちらの記事もご覧ください。

 


以上になります。

うまく複数桁の数字列を発見できたでしょうか?