2011-01-25 88 views
2

我有一個形式爲AU 12345TAU 12345T1的字符串;基本上它的形式是字母字符,然後是數字,然後以一個或兩個字符字母數字字符串結尾。這是解析字符串的最有效方法嗎?

我使用下面的正則表達式來得到我的結果:

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

這將是解析這樣的字符串的最有效方法是什麼?

因此,對於示例AU 12345T,我希望結果分爲三個標記:AU,12345,T;爲AU 12345T1應該AU12345T1(因爲結束字符可以是字母數字字符,最大長度爲2)

+1

強烈地感受到我過早的優化。 – 2011-01-25 15:28:47

回答

1

這應做到:

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

如果你想分開字符串如你所說,把括號塊左右,像這樣:

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

這將有正則表達式分別返回每個組。

說了這麼多,你可能要確保最後一個/兩個字符的字母數字字符串總是以一個字母開頭,否則你將無法將第二個標記與第三個標記分開。

相關問題