2017-02-21 5 views
-2

ユーザーが入力したVLAN文字列を検証する正規表現が必要です。文字列には数字または範囲をカンマで区切って指定する必要があります。数字はサンプル以下正規表現で区切られた数字や数字の範囲をカンマで区切りますが、範囲は1〜4093です。

が許可されている1〜4093である必要があります。

1, 
1,2,3,4 
1-10, 
1-4093 
4000 

が、私は以下試した:

^0*([1-9]|[1-8][0-9]|9[0-9]|[1-8][0-9]{2}|9[0-8][0-9]|99[0-9]|[1-3][0-9]{3}|40[0-8][0-9]|409[0-3])$ 

は、カンマ区切りのために強化する必要があると

+1

ピュアコード書き込み要求がオフトピックスタックオーバーフローである - 私たちはここに質問が*特定に関連することを期待*プログラミングの問題 - しかし、私たちは喜んであなた自身でそれを書くのを手伝ってくれるでしょう!私たち[あなたが試したこと](http://stackoverflow.com/help/how-to-ask)とあなたが立ち往生しているところを教えてください。これはまた、あなたの質問によく答えるのにも役立ちます。 –

+0

あなたの試したこととその結果は何ですか? – SaggingRufus

答えて

1

が一致するまでの範囲1から4093の数字を使用できます。

(?:[1-9]\d{0,2}|[1-3]\d{3}|40(?:[0-8]\d|9[0-3])) 

私たちはNと呼ぶでしょう。今繰り返し部分:

^(N)(?:[,-] *(N)?)*$ 

います:

^(?:[1-9]\d{0,2}|[1-3]\d{3}|40(?:[0-8]\d|9[0-3]))(?:[,-] *(?:[1-9]\d{0,2}|[1-3]\d{3}|40(?:[0-8]\d|9[0-3]))?)*$ 

Live demo

+0

ありがとうThomas。それは完全に動作します。 – Rinky

+1

@Rinky問題が解決したことを他の人が理解するのに役立ち、回答者に適切なクレジットが送られるように、回答を受け入れてください –

関連する問題