使用C#Regex的多个正则表达式选项
假设我有这个:
Regex.Replace("aa cc bbbb","aa cc","",RegexOptions.IgnoreCase);
但我也需要忽略空格。 所以,我找到了一个选项IgnorePatternWhitespace
,但是如何在一个regex.Replace中添加几个选项呢?
就像是:
Regex.Replace("aa cc bbbb", "aa cc", "", RegexOptions.IgnoreCase + RegexOptions.IgnorePatterWhitespace);
更新:
感谢您的回答,但此选项似乎不起作用:这是一个测试示例:
Regex.Replace("aa cc bbbb", "aacc", "", RegexOptions.IgnoreCase | RegexOptions.IgnorePatterWhitespace);
IgnorePatternWhitespace
从模式中消除未转义的空白区域并启用标记为#的注释。 但是,IgnorePatternWhitespace值不会 影响或消除字符类中的空格。
所以:
string result = Regex.Replace("aa cc bbbb","aa|cc","",RegexOptions.IgnoreCase).Trim();
使用按位OR( |
)
Regex.Replace("aa cc bbbb", "aa cc", "", RegexOptions.IgnoreCase | RegexOptions.IgnorePatterWhitespace);
Regex.Replace("aa cc bbbb","aa cc","",RegexOptions.IgnoreCase | RegexOptions.IgnorePatterWhitespace);
使用|
运营商。
编辑:
你完全错了。 RegexOption.IgnorePatterWhitespace
忽略正则表达式中的空格,以便您可以执行以下操作:
string pattern = @" ^ # Beginning of The Line \d+ # Match one to n number but at least one.. ";
然而,你认为进入空白会将"aa cc bbbb"
变成"aaccbbbb"
,这显然是错误的。
根据MSDN :
RegexOption枚举值的按位OR组合。
所以只需使用OPT_A | OPT_B
OPT_A | OPT_B
您可以拥有任意数量的RegexOptions,只需“或”与“|”。
例如…
RegexOptions.Compiled | RegexOptions.IgnoreCase