我正在尝试通过在搜索到的字符串中包装<span class="highlight"></span>
来突出显示字符串。
制作了一个简单的扩展方法:
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;
}
工作正常,但我真正想做的是在原始匹配中应用包装。
按原样,如果我搜索 trip ,我会得到
的结果<span class="highlight">trip</span> Nordic
以及我真正想要的是
<span class="highlight">Trip</span> Nordic
原始字符串为Trip Nordic
如何替换匹配的字符串的原始部分而不是我正在搜索的字符串?
bugger是regex
没有属性告诉我发现了什么(作为原始字符串),甚至没有找到匹配的位置......
答案 0 :(得分:4)
如果我理解正确,您可以使用substitution:
public static string Highlight(this string source, string highlightString)
{
var regex = new Regex(highlightString, RegexOptions.IgnoreCase);
var r = regex.Replace(
source,
"<span class=\"highlight\">$&</span>");
}
输出:
<span class="highlight">Trip</span> Nordic
答案 1 :(得分:1)
regex.Replace(
source,
"<span class=\"highlight\">$0</span>");
也应该有用。
$ 0 =组零=完整匹配