2

誰かが私のためにこれを検証してくれませんか(正規表現の一致の短所の初心者)。
質問するのではなく、私はこれを書いています:

Regex rgx = new Regex (@"^{3}[a-zA-Z0-9](\d{5})|{3}[a-zA-Z0-9](\d{9})$"

誰かが大丈夫かどうか教えてもらえますか...

照合しようとしているアカウントは次のいずれかです。

1. BAA89345  (8 chars)
2. 12345678  (8 chars)
3. 123456789112 (12 chars)

前もって感謝します。

4

5 に答える 5

1

値は 3 文字で、その後に常に 3 で始まる数字が続きますか? 3 未満または 3 未満で始まることはできますか? 可能な場合、数字の前のこれらの最小文字と最大文字は何ですか。

于 2012-10-04T19:12:12.647 に答える
1

量指定子は、量指定する文字の後に配置する必要があります。また、文字クラスは角括弧で囲む必要があります。これはうまくいくはずです:

@"^(?:[a-zA-Z0-9]{3}|\d{3}\d{4})\d{5}$"

優れた自動化された正規表現テスターがいくつかあります。regexpalをチェックアウトすることをお勧めします。

于 2012-10-04T19:13:42.267 に答える
1

正規表現テスターを使用できます。オンラインで無料のものをたくさん。My Regex Testerは私の現在のお気に入りです。

于 2012-10-04T19:10:55.700 に答える
1

それは完全に有効な一致かもしれませんが、次のように書き直すことをお勧めします。

^([a-zA-Z]{3}\d{5}|\d{8}|\d{12})$

次のいずれかに一致する文字列が必要です。

  • [a-zA-Z]{3}\d{5}3 つのアルファと 5 つの数字
  • \d{8}8桁または
  • \d{12}十二桁。

こちらも読みやすく...

于 2012-10-04T19:15:20.253 に答える
0

私はあなたの目的に 100% 同意しているわけではありませんが、すぐにわかる問題がいくつかあります。

  1. のように一致する許容可能な文字をリストするときは、a-zA-Z0-9括弧の中に入れる必要があります。先頭に[a-zA-Z0-9] a を使用する^と、含まれている文字が無効になります。たとえば、 `[^a-zA-Z0-9]

  2. 単語の文字は のように一致させることができます。\wこれは と同等[a-zA-Z0-9_]です。

  3. 量指定子は、一致式の最後に表示する必要があります。したがって、代わりに{3}[a-zA-Z0-9]を書く必要があります[a-zA-Z0-9]{3}(一致する文字の 3 つのインスタンスを一致させたいと仮定すると、[a-zA-Z0-9]

于 2012-10-04T19:16:10.203 に答える