关于替换的判决是什么:
Regex exp = new Regex(MyReg, RegexOptions.IgnoreCase);
var matches = exp.Matches(source);
foreach (var m in matches)
...
使用:
foreach (var m in new Regex(MyReg, RegexOptions.IgnoreCase).Matches(source))
...
性能问题,更慢,难以理解?还是好吗?
答案 0 :(得分:6)
我更喜欢您的第一个版本以提高可读性。你的第二个版本过多地放在一行上,我发现很难弄清楚发生了什么。
此外,如果您在此处出现错误,则使用第一个版本进行调试会更容易。
答案 1 :(得分:2)
整体表现应该是一样的。可读性受到一点IMO的影响,但实际上并不算太糟糕。所以我会主观地说这没关系。
答案 2 :(得分:2)
我不打算首先构建冗余的Regex
对象。只需使用静态方法:
foreach (var m in Regex.Matches(source, MyReg, RegexOptions.IgnoreCase))
// ...
这是最快和最易读的。