2016-10-28 37 views
1

我寫了下面的正則表達式正則表達式的值更新

string validnumber = @"^[a-zA-Z]{2}[0-9]{7}(?:-[0-9]{5})?$"; 

這將使像「AA1234567」和「AA1234567-12345」的號碼。

我想允許下的所有格式

AA1234567? 
AA1234567?? 
AA1234567??? 
AA1234567???? 

AA1234567-? 
AA1234567-?? 
AA1234567-??? 
AA1234567-???? 

誰能請幫助我,我怎麼能寫

+0

使'-'可選,然後 –

+0

爲什麼現在一天,這個問題上有太多的反對票,太早?而且它發生得太早,甚至不允許操作員找到並解決問題! –

+0

大部分時間,這是因爲他們很少花費精力去創造他們的問題,或者至少這是我過去所觀察到的。 – jpaugh78

回答

0

試試這個:

^[a-zA-Z]{2}\d{7}(?:-?\d{1,4})?$ 

Explanation

更新爲每個評論

+0

這不會引發任何錯誤,如果我鍵入下面的類型也BB5415852-1234514545 –

+0

在上述表達式d {1,4}將只允許數字我想允許字母數字字符。我們需要做什麼改變? –

+0

我嘗試了這個[a-zA-Z] {2} \ d {7}( - ?\ [a-zA-Z0-9] {1,4})?$,但是這不能按預期工作。 –

2

您需要在第二子表達的橫線後面添加一個問號,使'-'字符可選,並允許後綴是一至四位數字:

string validnumber = @"^[a-zA-Z]{2}[0-9]{7}(?:-?[0-9]{1,4})$"; 
//           ^ ^^^^

Demo.

+0

請再次看到我的問題.. –

4

我認爲這應該工作:

^[a-zA-Z]{2}\d{7}(?:-?\d{1,4})?$ 

Proof

說明:

Regular expression visualization