1

^\d{5}$|^\d{5}-\d{4}*$"US zipをチェックした正規表現があります。しかし、zip, zip, zipこれを行う方法を " " 確認する必要がありますか?

私はこれを試しまし^(\d{5}$|^\d{5}-\d{4},)*$たが、うまくいきません

4

3 に答える 3

4

試す

((^|, )(\d{5}|\d{5}-\d{4}))*$

テスター: http://regexr.com?36297

各一致の前に を付ける必要がある(^|, )ため、文字列の先頭または,(コンマ スペース)を付ける必要があります。

\d.NET では を٠١٢٣٤使用しないでください\d。(.NET\dには非 ASCII Unicode 数字が含まれます)。[0-9]通常の方が良いです。

于 2013-08-22T10:32:52.203 に答える
0

必要と思われる式は次のとおりです。

    ^\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 回以上使用できます。
于 2013-08-22T10:29:49.927 に答える
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* 
 $
于 2013-08-22T19:46:48.457 に答える