2016-08-19 37 views
0
Regex rgx = new Regex(@"/^[A-Z]{6}\d{2}[A-Z]\d{2}[A-Z]\d{3}[A-Z]$/i"); 

bool result = rgx.IsMatch("PPPPLT80R10M082K"); 

MessageBox.Show(result.ToString()); 

這是意大利稅法的正則表達式。它應該可以工作,我也嘗試了regex101.com,它沒有提供任何錯誤: See also here 問題是,當我運行代碼時,結果總是爲false。我做錯了什麼? 在此先感謝正則表達式總是返回假c#

+0

是的,你的正則表達式*模式*的作品。正則表達式分隔符和修飾符不是模式的一部分,您應該將該模式作爲參數提供給正則表達式構造函數。使用新的Regex(@「^ [AZ] {6} \ d {2} [AZ] \ d {2} [AZ] \ d {3} [AZ] $」,RegexOptions.IgnoreCase)' –

+0

BTW,regex101不支持.NET正則表達式。 –

+0

此外,請確保在實際使用C#的網站上測試正則表達式,如http://regexstorm.net/ – juharr

回答

0

只需從您的正則表達式中刪除周圍/,在.NET中不需要它。

可以使用RegexOptions.IgnoreCase構造函數的Regex的第二個參數指定不區分大小寫。

Regex rgx = new Regex(@"^[A-Z]{6}\d{2}[A-Z]\d{2}[A-Z]\d{3}[A-Z]$", RegexOptions.IgnoreCase); 
+0

感謝它的工作 –