RegexOptions regexOptions = new RegexOptions
                if (cbIgnoreCase.Checked) regexOptions |= RegexOptions.IgnoreCase;
                if (cbCultureInvariant.Checked) regexOptions |= RegexOptions.CultureInvariant;
                if (cbMultiLine.Checked) regexOptions |= RegexOptions.Multiline;
                if (cbSingleLine.Checked) regexOptions |= RegexOptions.Singleline;
                if (cbIndentedInput.Checked) regexOptions |= RegexOptions.IgnorePatternWhitespace;

解决方案 »

  1.   

    等效 a = a | 一个bool
    | 是或运算。
      

  2.   

    操作符=c的标准写法,意思是操作符的左值 作为表达式的第一个值和=右边的数操作,例如+=
    -=
    *=
    /=
    %=
    ^=
    |=
    &=都分别表示int i = 5;
    i+=2; 表示 i = i + 2;
    以此类推所以
    |=
    就表示 regexOptions = regexOptions | RegexOptions.IgnoreCase;
    以此类推。
      

  3.   

    a |= b同等于a = a | b
      

  4.   


    是的,位运算操作,与或非的或,表示合并的意思。 0 1 => 1, 1 1=>1
      

  5.   

    if (cbIgnoreCase.Checked) regexOptions |= RegexOptions.IgnoreCase;
    如果选择了忽略大小写的选项框,那么无论regexOptions是什么,都二进制加上RegexOptions.IgnoreCase标记。假设 regexOptions = 00000111(二进制),IgnoreCase = 01000000
    那么或运算后 = 01000111
      

  6.   

    那以下代码的功能是?                RegexOptions regexOptions = new RegexOptions
                    if (cbIgnoreCase.Checked) regexOptions |= RegexOptions.IgnoreCase;
                    if (cbCultureInvariant.Checked) regexOptions |= RegexOptions.CultureInvariant;
                    if (cbMultiLine.Checked) regexOptions |= RegexOptions.Multiline;
                    if (cbSingleLine.Checked) regexOptions |= RegexOptions.Singleline;
                    if (cbIndentedInput.Checked) regexOptions |= RegexOptions.IgnorePatternWhitespace;
      

  7.   

    比如if (cbIgnoreCase.Checked) regexOptions |= RegexOptions.IgnoreCase;
    就是说匹配正则表达式时,不考虑大小写