^\d{5}$|^\d{5}-\d{4}*$"
US zipをチェックした正規表現があります。しかし、zip, zip, zip
これを行う方法を " " 確認する必要がありますか?
私はこれを試しまし^(\d{5}$|^\d{5}-\d{4},)*$
たが、うまくいきません
試す
((^|, )(\d{5}|\d{5}-\d{4}))*$
テスター: http://regexr.com?36297
各一致の前に を付ける必要がある(^|, )
ため、文字列の先頭または,
(コンマ スペース)を付ける必要があります。
\d
.NET では を٠١٢٣٤
使用しないでください\d
。(.NET\d
には非 ASCII Unicode 数字が含まれます)。[0-9]
通常の方が良いです。
必要と思われる式は次のとおりです。
^\d{5}(|-\d{4})(,\d{5}(|-\d{4}))*$
あなたが書こうとしていたものは次のとおりです。
^(\d{5}|\d{5}-\d{4},)*$
しかし、そうするとすべての ZIP の末尾にカンマが必要になり、最後の ZIP にはありませんでした。
与えられた答えを分解すると、
\d{5}(|-\d{4})
はオリジナルの変形ですが、-1234 をオプションにするだけです。(,\d{5}(|-\d{4}))*
コンマが前に付く最初の正規表現で、0 回以上使用できます。私はスピードのためにこれを使用します:
^\d{5}(?:-\d{4})?(?:,\s*\d{5}(?:-\d{4})?)*$
拡張された
^
\d{5}
(?: - \d{4} )?
(?:
, \s* \d{5}
(?: - \d{4} )?
)*
$
そしてこれは速度/柔軟性のために:
^\s*\d{5}(?:\s*-\s*\d{4})?(?:\s*,\s*\d{5}(?:\s*-\s*\d{4})?)*\s*$
拡張された
^
\s*
\d{5}
(?: \s* - \s* \d{4} )?
(?:
\s* , \s* \d{5}
(?: \s* - \s* \d{4} )?
)*
\s*
$