C# 正则表达式替换和替换字符串
我有以下代码:C# 正则表达式替换和替换字符串,c#,regex,C#,Regex,我有以下代码: Regex.Replace(text, words.ToString(), "<dfn title=\"" + this.FindDefinition("$0") + "\">$0</dfn>", RegexOptions.IgnoreCase | RegexOptions.Compiled); 我遇到的问题是FindDefinition方法。我想发送原始单词进行查找并返回定义文本。这是可能的还是我需要创建这样的模板: Regex.Replace(te
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,那么它几乎总是完全错误的 您需要使用evaluator替换词。你为什么不这样做:
private string ReplaceWord(Match m)
{
return "<dfn title=\"" + this.FindDefinition(m.Value) + "\">"+m.Value+"</dfn>";
}
我倾向于使用类似m.Groups[0]的东西。在regex中使用Value和grouping。你当然是对的。。我之前测试这个的时候肯定做错了什么。谢谢:。