2011-08-15 66 views
1

我怎樣才能改變以下正則表達式,使空值(又名的String.Empty)也匹配:正則表達式:返回值可以匹配或爲空

^[0-9]{4}$ 

我試過以下,但暫時還沒有成功:

^[0-9]{4}$|^$ 
(^[0-9]{4}$)* 

我使用VB.Net應用與命名空間System.Text.RegularExpressions比較。

注意:正則表達式是一個四位數字,代表SSN的最後四個數字;並且它是可選的。因此,我想用一個正則表達式來解決比賽不是必須做這樣的事情:

If myString.Length = 0 Then 
    'This is Ok 
Else 
    'Do the regular expression comparison here 
End if 

回答

2

嘗試這種模式:

^[0-9]{0,4}$ 

這將匹配具有0-4個數字輸入。

如果只想0或4位數,使用此:

^[0-9]{4}$|^$ 

演示:http://regexhero.net/tester/?id=cd85169b-f5f8-457e-8f8e-759816213fb5

+0

他說他已經嘗試了第二個聲明。雖然我不知道爲什麼它不會奏效。 | |運算符在VB正則表達式中工作? –

+0

嗯......我用.Net引擎嘗試過,它工作。看我的編輯。 – Mrchief

+0

好的...也許我還沒有喝夠咖啡。我再次嘗試了^ [0-9] {4} $ |^$,它工作正常。我必須早先對它進行錯誤的測試。標記爲答案。 Ty求助。 – ray

0

請嘗試以下正則表達式:

^([0-9]{4})?$ 

希望這有助於。

1

這樣做:^([0-9 ]{4})?$

+0

ty爲答案。這讓我意識到我的問題措辭不佳。在ASCII值32中,我的意思不是空白。我的意思是一個空值。 (String.Empty) – ray

+0

@ray,啊,呃! – Prisoner