正则表达式替换和替换字符串
问题描述:
我有下面的代码:正则表达式替换和替换字符串
Regex.Replace(text, words.ToString(), "<dfn title=\"" + this.FindDefinition("$0") + "\">$0</dfn>", RegexOptions.IgnoreCase | RegexOptions.Compiled);
我遇到的问题是与FindDefinition方法。我想发送原始单词进行查找并返回定义文本。这是可能的还是我需要创建一个这样的模板:
Regex.Replace(text, words.ToString(), "<dfn title=\"{$0}\">$0</dfn>", RegexOptions.IgnoreCase | RegexOptions.Compiled);
然后做一个搜索它来取代它与我的定义?
我也试过用:
Regex.Replace(text, words.ToString(), this.ReplaceWord, RegexOptions.IgnoreCase | RegexOptions.Compiled);
private string ReplaceWord(Match m)
{
return "<dfn title=\"" + this.FindDefinition(m.Value) + "\">$0</dfn>";
}
它与FindDefinition方法工作得很好,但后来我有一个问题让原始值。
我错过了什么?
答
试试这个:
return string.Format("<dfn title=\"{0}\">{1}</dfn>",
this.FindDefinition(m.Value),
m.Value);
答
你正在构建的手XML,它几乎总是错误的。
您需要使用评估程序(replaceword)。你为什么不这样做:
private string ReplaceWord(Match m)
{
return "<dfn title=\"" + this.FindDefinition(m.Value) + "\">"+m.Value+"</dfn>";
}
我倾向于使用类似m.Groups [0] .value的,并使用正则表达式中的分组。
你当然是对的..当我早些时候测试这个时,我一定犯了错误。谢谢 :)。 – 2009-10-22 08:53:30