C#Regex.Replace不区分大小写,作为匹配的函数

时间:2017-04-13 14:20:33

标签: c# regex

说我有这样的文字:

string text = "Hello world! hElLo world!";

我想在每个单词周围添加一个span标签' hello'以不区分大小写的方式,结果如下:

string text = "<span>Hello</span> world! <span>hElLo</span> world!";

我尝试用Regex.Replace这样做:

Regex.Replace(text, "hello", "<span>hello</span>", RegexOptions.IgnoreCase);

但我真正需要的只是要创建的span标签,只保留原始外壳。所以我需要替换短语是匹配短语的函数。我怎么能这样做?

1 个答案:

答案 0 :(得分:7)

不要对替换模式中的hello进行硬编码,而是对整个匹配值使用$&反向引用。

"<span>hello</span>"替换为"<span>$&</span>",使用

var replaced = Regex.Replace(text, "hello", "<span>$&</span>", RegexOptions.IgnoreCase);

Substitutions in Regular Expressions中查看有关替换反向引用的详情。