2017-05-10 5 views
-1

私はAndroid識別子の正規表現パターンを構築しています。サンプルアンドロイドidは上記の形式に私の正規表現パターンに一致するように、javaの指定された無効な入力に対してregexパターンが一致しない

ので
5f302bf7-97ad-4c24-86f5-823f881d954e 

ある

<8 character alphaNumeric>-<4 character alphaNumeric>-<4 character alphaNumeric>-<12 character alphaNumeric> 

、とAndroidの識別子は、次の形式である必要があり、次のようになり

"^([A-Fa-f0-9]{8}\\" + "-[A-Fa-f0-9]{4}\\" + "-[A-Fa-f0-9]{4}\\" 

の場合私は無効なAndroidのIDを

00000000-0000-0000-0000-000000000000 
としました

も上記の正規表現パターンと一致します。

上記の無効な識別子と一致しない正規表現パターンを作成するにはどうすればよいですか?私が正しくあなたの質問あなたを理解している場合

+0

あなたは ')('文字列#マッチを使用しましたか?私はあなたのパターンが一致しないので、私は仮定しません。それ以外に、あなたのパターンは最初の3つのグループ、すなわち '00000000-0000-0000'と一致します。その12文字シーケンスがありません。それ以外に、なぜそれらのスラッシュを追加したのですか?パターンを1つの文字列に作成するのではなく、文字列を連結した理由は何ですか? – Thomas

+2

[mcve]を提供してください – Jens

+0

パターンをもう一度見てください私はJensと強く同意します:あなたのコードの完全な関連部分(別名[mcve])を提供しない限りパターンは完成しませんそうですか。 – Thomas

答えて

0

は、あなたはそれが進文字のみ(0-9、AFとAF)

  • それがあるべきを許可する必要があり
    • 次のルール

      を持つ識別子を検証します長いダッシュで区切られた28文字( - )と構造の{8つの文字} - {4つの文字} - {4つの文字} - {12文字}

    正規表現:^[A-Fa-f0-9]{8}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{12}$

    本の

    Regex101 Demo

    マッチ:

    FF000000-0000-0000-0000ABCDEF0A 
    00000000-0000-0000-000000000000 
    

    リジェクツ:

    00000000-0000-0000-0000-000000000000 
    00000000 0000 0000 0000 000000000000 
    00000000000000000000000000000000 
    00000000-0000-0000-00000000000G 
    
  • +0

    私はこの "00000000-0000-0000-000000000000"と一致するパターンを望んでいません。その識別子が無効なためです。 – Pez

    +0

    したがって、_a有効な識別子は何ですか?あなたは例を共有できますか? – degant

    +0

    "FF000000-0000-0000-0000ABCDEF0A"は有効な識別子です。 "00000000-0000-0000-000000000000"ではありません。しかし、上記のパターンは両方を受け入れます。 – Pez

    関連する問題