带有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);
使用位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();