1

消費者製品モデルの正規表現を作成しようとしています。

私はこの正規表現を持っています:([a-z]*-?[0-9]+-?[a-z]*-?){4,}

この特別な文字列全体を 4 つ以上に制限することを期待していますが、数字のみに制限が適用されます。

したがって、この例は一致しますE1912Hが、これは一致しません:EM24A1BFただし、両方が一致する必要があります。

私が間違っていることを教えてもらえますか、または数字だけでなく特別な文字列全体に制限を加えるにはどうすればよいですか?
制限:
1- 文字列には少なくとも 1 つの数字
が含まれます 2- 文字列には
文字を含めることができます 3- 文字列には「-」を含めることができます
4- 最小長 = 4

4

3 に答える 3

1

これまでの条件の要約:

  1. 少なくとも 1 桁の [0-9] が必要です
  2. 少なくとも 4 つの記号が必要です {4,}
  3. [a-zA-Z] の文字を使用できます
  4. 短いダッシュ [-] を使用できます

次の正規表現はそれらすべてを満たしています。

^(?=.*\d)([A-Za-z0-9-]+){4,}$

:^および$記号は、入力文字列全体が検証されることを意味します。そうでない場合は、これを変更します。

于 2013-10-03T14:23:34.353 に答える
0

一致することはできません... EM24A1BFにはEMが含まれています。これは、正規表現が示すように1ではなく、2 [az]です。このようなもの

[a-z]*-?\d+-?[a-z]*-?\d*[a-z]+

あなたの式とこれらすべての両方に一致します:

  • E1912H
  • EM24A1BF
  • eM24A1BF
  • eM-24A-1BF
  • eM-24A-
  • eM24A-1BF
  • eM-24A1BF

文字列が要件 (文字の位置と構成、および長さの要件) の両方を満たしていることを確認するには、消費しない正規表現を使用する必要があります。

于 2013-10-03T13:34:11.300 に答える
0

これをチェックしてください

 ([\w-]*\d+[\w-]*){4,}

それは以下に一致します

32ES5200G
LE32K900
N55XT770XWAU3D
于 2013-10-09T14:35:42.927 に答える