假设我有一些这样的文本:
string text = "Hello world! hElLo world!";
我想以不区分大小写的方式在每个单词"hello"周围添加一个 span 标签,以便结果是这样的:
string text = "<span>Hello</span> world! <span>hElLo</span> world!";
我尝试用正则表达式来做到这一点,像这样替换:
Regex.Replace(text, "hello", "<span>hello</span>", RegexOptions.IgnoreCase);
但我真正需要的只是要创建的 span 标签,而不要使用原始大小写。所以我需要替换短语是匹配短语的函数。我该怎么做?
不要在
替换模式中硬编码hello
,而是使用对整个匹配值的$&
反向引用。
将"<span>hello</span>"
替换为"<span>$&</span>"
,使用
var replaced = Regex.Replace(text, "hello", "<span>$&</span>", RegexOptions.IgnoreCase);
有关替换反向引用的更多信息,请参阅正则表达式中的替换。