C# 如何使用原始匹配值替换字符串
我试图通过在搜索的字符串中包装C# 如何使用原始匹配值替换字符串,c#,regex,C#,Regex,我试图通过在搜索的字符串中包装来突出显示字符串 制作了一个简单的扩展方法,如下所示: public static string Highlight(this string source, string highlightString) { var regex = new Regex(highlightString, RegexOptions.IgnoreCase); var r = regex.Replace( source,
来突出显示字符串
制作了一个简单的扩展方法,如下所示:
public static string Highlight(this string source, string highlightString)
{
var regex = new Regex(highlightString, RegexOptions.IgnoreCase);
var r = regex.Replace(
source,
"<span class=\"highlight\">" + highlightString + "</span>");
return r;
}
公共静态字符串高亮显示(此字符串源,字符串高亮显示字符串)
{
var regex=new regex(highlightString,RegexOptions.IgnoreCase);
var r=regex.Replace(
来源:,
“+highlightString+”);
返回r;
}
很好,但我真正想做的是在原始匹配中应用包装
按原样,如果我搜索trip,我会得到
<span class="highlight">trip</span> Nordic
北欧之旅
我真正想要的是
<span class="highlight">Trip</span> Nordic
<span class="highlight">Trip</span> Nordic
北欧之旅
因为原始字符串是Trip Nordic
如何替换匹配字符串的原始部分而不是搜索的字符串
问题是,
regex
没有属性告诉我找到了什么(作为原始字符串),甚至没有找到匹配项的位置…如果我理解正确,您可以使用:
公共静态字符串高亮显示(此字符串源,字符串高亮显示字符串)
{
var regex=new regex(highlightString,RegexOptions.IgnoreCase);
var r=regex.Replace(
来源:,
"$&");
}
输出:
北欧之旅
如果我理解正确,您可以使用:
公共静态字符串高亮显示(此字符串源,字符串高亮显示字符串)
{
var regex=new regex(highlightString,RegexOptions.IgnoreCase);
var r=regex.Replace(
来源:,
"$&");
}
输出:
北欧之旅
regex.Replace(
来源:,
"$0");
应该也行
$0=组零=整个匹配regex.Replace(
来源:,
"$0");
应该也行
$0=零组=全部匹配可能与stringObj重复。替换无效?只是一个想法…使用替换:可能直接复制stringObj.Replace不起作用?只是一个想法…使用替换:
<span class="highlight">Trip</span> Nordic
regex.Replace(
source,
"<span class=\"highlight\">$0</span>");