Asp.net
使用 Regex OR 運算符解決 2 個條件
我正在嘗試使用 OR 運算符將 2 個正則表達式組合成 1 個:
|我有一個檢查字母后跟 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顯然我沒有正確地將兩者結合起來,顯然我在正則表達式方面很糟糕。任何幫助將非常感激。
對於那些想知道的人,我確實看了一眼如何在正則表達式中結合 2 個條件和更多條件,但我仍然摸不著頭腦。
怎麼用
^[A-Z0-9]\d{8}$?
|運算符具有高優先級,並且在您的原始正則表達式中將首先應用。您應該將兩個正則表達式與分組括號結合起來,以明確優先級。如:"^(([A-Z]\d{8})|(\d{9}))$"