2012-10-26 18 views
5

2桁または5桁の数字だけに一致する正規表現を作成するにはどうすればよいですか?2桁または5桁の正規表現

私はこれまでこれを持っていましたが、2〜5桁の数字に一致します。

  ^\d{2,5}$ 

答えて

12

使用3オプションの桁:

^\d{2}\d{3}?$ 

注一部の正規表現エンジンがために問題を引き起こすように思わungreedy修飾子、として任意の繰り返し修飾子(でも固定1)の後に?を解釈すること2桁の場合。このような場合は、使用:

^\d{2}(?:\d{3})?$ 

あなたはthis great tutorialに、いくつかの正規表現の基礎上に読むことができます。ところで

は、上記の交代を使用して、この1を効果的に同等の(しかし、わずかに、より効率的)である:

^(?:\d{2}|\d{5})$ 

(。ただ、あなたに別の正規表現の概念を示すのために)

+0

-1。最初のものはJavaで間違っています。 '?'は遅延マッチングを示します。 – nhahtdh

+0

@nhahtdh、 '{..}'が範囲であったかどうかだけ? –

+0

@ m.buettner:反復回数が固定されていても、通常と違うとは思わないが、 '? 'は怠惰と解釈される。 – nhahtdh

0
/^\A\d{2}\z$|^\A\d{5}\z$/ 

Aは入力の開始を意味し、zは入力の終了を意味する。

これはPHPとJAVAで動作します。 jsやperlについてはわからない