在我們的代碼有以下形式的正則表達式:.NET正則表達式中的(?i)是什麼意思?
string regex = @"(?i)foo=(BAR?-[A-Z]+(33|34)?)";
什麼是「(?i)
」在正則表達式匹配的開始/嗎?我查看了.NET正則表達式文檔,似乎無法弄清楚(?i)
意味着什麼。謝謝!
在我們的代碼有以下形式的正則表達式:.NET正則表達式中的(?i)是什麼意思?
string regex = @"(?i)foo=(BAR?-[A-Z]+(33|34)?)";
什麼是「(?i)
」在正則表達式匹配的開始/嗎?我查看了.NET正則表達式文檔,似乎無法弄清楚(?i)
意味着什麼。謝謝!
(?i)
激活不區分大小寫的匹配。
參考:MSDN,Regular Expression Options(由我高亮):
您可以在以下三種方式之一指定正則表達式的選項:
在選項
System.Text.RegularExpressions.Regex
的參數類構造函數或靜態(Visual Basic中的Shared)模式匹配方法,如Regex.Regex(String, RegexOptions)
或Regex.Match(String, String, RegexOptions)
。 [...]通過使用語法(?imnsx-imnsx)在正則表達式模式中應用內聯選項。該選項適用於從選項被定義爲模式結尾或選項未被另一行內選項定義的點的模式。 [...]
通過在正則表達式模式中使用語法(?imnsx-imnsx:子表達式)在特定分組構造中應用內聯選項。 [...]
(?i)
表示:忽略啓用大小寫選項。 這相當於調用Regex.Matches
與第三個參數RegexOptions.IgnoreCase
它設置正則表達式忽略大小寫。在未來,您可以使用Expresso來計算這樣的事情:
(?i)
打開大小寫不敏感。所以它是一個不區分大小寫的匹配。
打開羣組內的忽略情況