2011-01-25 11 views
2

私はAU 12345TまたはAU 12345T1という形式の文字列を持っています。基本的にはアルファベット文字の後に数字が続き、1文字または2文字の英数字の文字列で終わる形式です。これは文字列を解析する最も効率的な方法ですか?

私は私の結果を得るために、次の正規表現を使用しています:

^[a-z|A-Z]+|[0-9]+|[a-z|A-Z][0-9]? 

は、このような文字列を解析するための最も効率的な方法だろうか?

AU 12345Tの例では、結果を3つのトークン、すなわち、AU,12345Tに分けてください。

[A-Za-z]+\s?[0-9]+[A-Za-z0-9]{1,2}?

をお分けしたい場合:AU 12345T1ことがAU12345T1これはそれを行う必要があります

+1

早すぎる最適化を強く訴えます。 –

+0

ナンバープレートのためのRegexのように見えます。 –

+1

なぜパイプを探していますか? – tchrist

答えて

1

(終了文字は英数字とmaxことができるので、長さが2である)でなければなりません

([A-Za-z]+)\s?([0-9]+)([A-Za-z0-9]{1,2}?)

これがあります:あなたが言ったように、文字列は、そのように、ブロックの周りに括弧を置きます正規表現は各グループを個別に返します。

これらのことはすべて、最終的な1文字/ 2文字の英数字の文字列が常に文字で始まることを確認したい場合や、2番目のトークンを3番目のトークンから分離する方法がない場合があります。

関連する問題