言及されているように、誰かが正規表現を手伝ってくれませんか。
範囲が以下の形式の値のみを取る必要がある属性「範囲」を持つxml要素「docs」があります。
範囲 = "1,2,3,4,5"
また
範囲 = "1,2,3-6,10-12,15,20-30"
また
範囲 = 「すべて」
ちょっとした助けをいただければ幸いです。前もって感謝します。
言及されているように、誰かが正規表現を手伝ってくれませんか。
範囲が以下の形式の値のみを取る必要がある属性「範囲」を持つxml要素「docs」があります。
範囲 = "1,2,3,4,5"
また
範囲 = "1,2,3-6,10-12,15,20-30"
また
範囲 = 「すべて」
ちょっとした助けをいただければ幸いです。前もって感謝します。
^\d(?!.*,-)[\d\,\-]*\d$|^all$|^\d+$
あなたの数字のために働くはずです。入力できるのは、数字、コンマ、ダッシュ、または単語のみall
です。
all|[1-9][0-9]*(-[1-9][0-9]*)?(,[1-9][0-9]*(-[1-9][0-9]*)?)*
ゼロと先行ゼロは許可されていないと想定しています。
正規表現は、数値が昇順であることを保証する良い方法ではありません。
@minopret が述べたように、これはおそらく正規表現で完全に処理しない方がよいでしょう。文字列をsplit(",")
取得し、結果の配列を繰り返し処理して、それらが昇順であることを確認します。その時点で個々の配列要素のそれぞれを正規表現して、次のように一致することを確認できます。
\d+(-\d+)?