数値を次のような正規表現と一致させようとしています:
34-7878-3523-4233
これとともに:
^[0-9][0-9-]*-[0-9-]*[0-9]$
しかし、式も許可します
34--34--------88
では、数字の間にハイフンを 1 つだけ許可するにはどうすればよいでしょうか。
数値を次のような正規表現と一致させようとしています:
34-7878-3523-4233
これとともに:
^[0-9][0-9-]*-[0-9-]*[0-9]$
しかし、式も許可します
34--34--------88
では、数字の間にハイフンを 1 つだけ許可するにはどうすればよいでしょうか。
これは、文字クラスで許可されている文字にハイフンが含まれているためです。あなたはそれを外に持っているべきです。
次のようなことを試すことができます: -
^([0-9]+-)*[0-9]+$
これで、いくつかの数字の後にハイフンが続く0 回以上の繰り返しに一致します。次に、末尾に 1 つ以上の数字。
normal*(special normal*)*
次のパターンを使用します。
^[0-9]+(-[0-9]+)+$
どこにいてどこにnormal
いる[0-9]
special
-