我需要多次检查和修改一个字符串(搜索和替换不同的seqences)但它运行不正常。我猜它是因为不变性。
private string DoRegexCheck(string line)
{
string pattern;
foreach (string re in this.regexPatterns.Items)
{
pattern = re;
Regex r = new Regex(pattern, RegexOptions.IgnoreCase);
line=r.Replace(line, ""); //the line should be updated and the check should continue with updated line
}
return line;
}
答案 0 :(得分:2)
“效果不佳”有些含糊不清。
如果您的意思是“它没有改变line
- 那么该代码就可以了。可变性根本不是问题,因为我们每个{{更新> 字符串变为{ 1}}(显示的代码不会尝试编辑现有的字符串)。如果没有按预期更新,那么Replace
模式就不正确了。
如果你的意思是表现:你不能改变Regex
对字符串的作用方式;但是,我建议使用Regex
选项缓存各种正则表达式,这样就可以重新使用预编译的Compiled
数组或字典。如果将此应用于数千Regex
s。