切换RegexOptions.IgnoreCase?

时间:2015-08-09 03:32:14

标签: c# regex

我可以选择让用户打开或关闭区分大小写。

这导致我做这样的剂量。

if (ignoreCase)
{
    if (Regex.IsMatch(data, pattern, RegexOptions.IgnoreCase) == true)
    {
        //do something with results
    }
}
else
{
    if (Regex.IsMatch(data, pattern) == true)
    {
        //do something with results
    }
}

有没有更好的方法可以重写它?它似乎为选项创建了许多重复的代码。

更新

考虑下面会有什么用?这样,如果我需要其他选项,我可以简单地控制修改regexOptions?

RegexOptions regexOptions = new RegexOptions();
if(ignoreCase)
{
    regexOptions = RegexOptions.IgnoreCase;
}
if (Regex.IsMatch(data, pattern, regexOptions) == true)
{
    //do something with results
}

1 个答案:

答案 0 :(得分:3)

因为RegexOptions是" Flags"枚举你可以使用None作为"不要忽略大小写"选项:

if (Regex.IsMatch(data, pattern, 
   ignoreCase ? RegexOptions.IgnoreCase : RegexOptions.None) )