带有C#regex的多个regex选项

本文关键字:regex 选项 C#regex 带有 | 更新日期: 2023-09-27 18:14:37

假设我有这个:

Regex.Replace("aa cc bbbb","aa cc","",RegexOptions.IgnoreCase);

但我也需要忽略空白。因此,我找到了一个选项IgnorePatternWhitespace,但如何将多个选项添加到一个正则表达式中。是否更换
类似于:

Regex.Replace("aa cc bbbb", "aa cc", "", 
    RegexOptions.IgnoreCase + RegexOptions.IgnorePatterWhitespace);

更新:
谢谢你的回答,但这个选项似乎不起作用:这里有一个测试示例:

Regex.Replace("aa cc bbbb", "aacc", "", 
    RegexOptions.IgnoreCase | RegexOptions.IgnorePatterWhitespace);

带有C#regex的多个regex选项

使用位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枚举值的按位"或"组合。

所以只需使用OPT_A | OPT_B

您可以拥有任意数量的RegexOptions,只需将它们与"|"OR"即可。

例如。。。

RegexOptions.Compiled | RegexOptions.IgnoreCase

忽略模式空白
从模式中消除未标注的空白,并启用注释标有#。但是,IgnorePatternWhitespace值影响或消除字符类中的空白

所以:

string result = Regex.Replace("aa cc bbbb","aa|cc","",RegexOptions.IgnoreCase).Trim();