我想2個正則表達式組合成1 OR運算符:|
使用正則表達式或運算解決2個條件
我有一個檢查一個字母后跟8位數字的匹配:
Regex.IsMatch(s, "^[A-Z]\d{8}$")
我有另一種爲簡單的9位檢查:
Regex.IsMatch(s, "^\d{9}$")
現在,而不是做的:
If Not Regex.IsMatch(s, "^[A-Z]\d{8}$") AndAlso
Not Regex.IsMatch(s, "^\d{9}$") Then
...
End If
我想我可以簡單地做:
If Not Regex.IsMatch(s, "^[A-Z]\d{8}|\d{9}$") Then
...
End If
顯然我沒有正確地結合兩者,顯然我在正則表達式太可怕了。任何幫助將非常感激。
對於那些想知道的,我確實看了一下How to combine 2 conditions and more in regex,我仍然在撓頭。
另一種方式來寫它會很有幫助是'「^ [A-Z0-9] \ d {8} $」'(大寫字母或數字後跟8個數字)。雖然我沒有看到你的正則表達式有問題。你能提供一些應該/不應該匹配的字符串的例子嗎? – 2012-04-10 18:46:15
@PatrickMcElhaney有效的條目應該是:A1234578或123456789 – 2012-04-10 18:47:32
@Scott Patrick的建議同時支持這兩個問題,正如Mike C的回答如下,使用相同的正則表達式。 – 2012-04-10 18:49:11