我的问题是我想解析一个大字符串,找到该字符串中所有单词的实例,然后在其周围插入标签,以便在ASP.Net MVC 4 View中显示时突出显示。下面的代码的问题是,如果我搜索一个单词并使用与段落中的不同的情况,它会找到它,但会用我最初搜索的任何情况替换它。
例如,在下面的段落中,有两个单词" lectus"。
我希望做的是让它与单词匹配,插入标签,但保留原来的单词 - 不要改变它,只需找到并包装文本周围。是否有支持此功能的方法或功能?我似乎无法找到一个...所有结果都指向不区分大小写的字符串替换,这是我已经使用的。
// I want to find all instances of the word "lectus".
string wordToFind = "lectus";
// This is the paragraph to search...
string paragraph = "Phasellus vitae elit maximus, egestas nibh id, pretium lacus. Aliquam ac lectus quis urna pharetra consectetur. Mauris neque est, tempor ac urna quis, fringilla congue diam. Curabitur dictum arcu vitae purus pretium consectetur. In rutrum lectus neque, eget maximus nunc commodo in.";
// This searches the paragraph and replaces all instances of wordToFind with itself, wrapped in <span> tags for highlighting.
paragraph.text = Regex.Replace(paragraph.text, wordToFind, "<span style='background-color: #FFFF00'>" + wordToFind + "</span>", RegexOptions.IgnoreCase);
答案 0 :(得分:3)
您可以使用substitution symbol $0
来执行此操作,该paragraph.text = Regex.Replace(paragraph.text, wordToFind, "<span style='background-color: #FFFF00'>$0</span>", RegexOptions.IgnoreCase);
{{1}}对应于正则表达式捕获的值:
{{1}}