5

私は最初の正規表現を書こうとしています..次の組み合わせの価値があります

letters [upper or lowercase]
numbers [0-9]
letters in parentheses [(M)]
no spaces or other characters

いくつかの例:

OK: "A3"
OK: "N15"
OK: "A126"
OK: "B6469"
OK: "A57(M)"
OK: "A1(M)"

NOT OK: "TF9 3TF"
NOT OK: "B64 69"

私の通常の経験:

^(([a-zA-Z][1-9]\([a-zA-Z]\)?)|([a-zA-Z][1-9][1-9]\([a-zA-Z]\)?)|([a-zA-Z][1-9]?)|([a-zA-Z][1-9][1-9]?)|([a-zA-Z][1-9][1-9][1-9]?)|([a-zA-Z][1-9][1-9][1-9][1-9]?))$

それは私にとってはうまくいきます。しかし、正規表現が長すぎるように見えるので、最善の解決策が必要です。組み合わせごとに式を作成してからこれらすべてを組み合わせますが、サンプルコードのように正規表現を減らしたい最初のアルファベット、次に数字を含むことができます(A1、A12、A123、A1234、A12345) で機能する 1 つの式を作成する方法を教えてください。

4

1 に答える 1

6

それは非常に複雑に思えます。

^[a-zA-Z]\d{1,5}(?:\(M\))?$

やるべきです。

于 2013-06-27T10:19:10.430 に答える