【发布时间】:2010-11-04 17:33:52
【问题描述】:
在调用 RegEx.Replace 来处理大量字符串时,我有点担心性能问题,因为我不知道如果没有匹配项会发生什么。
public static void ReplaceOldWithNew(ref string input)
{
string pattern = //something here
input = Regex.Replace(input, pattern, FormatReplacement);
}
private string FormatReplacement(Match m)
{
return String.Concat("x", formatCount++);
}
我应该这样吗
public static void ReplaceOldWithNew(ref string input)
{
string pattern = //something here
if (RegEx.IsMatch(input, pattern))
input = Regex.Replace(input, pattern, FormatReplacement);
}
这样做的问题是,如果有匹配项,它会搜索输入字符串两次。是否有任何解决方案可以仅搜索一次匹配项并仅在需要时创建新的字符串实例。也许使用 RegEx.Matches 之类的。
谢谢和BR - 马蒂
【问题讨论】:
标签: c# regex performance c#-2.0