Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用原始匹配值替换字符串_C#_Regex - Fatal编程技术网

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>");