如何为此文本执行正则表达式替换?

时间:2013-09-26 23:10:59

标签: c# regex

如何为此文本执行正则表达式替换:

    <span style=\"text-decoration: underline;\">Request Block Host</span> to

    `<u>Request Block Host</u>`

到目前为止,我有这个,假设“text”是具有上述标记的完整字符串。

   text = Regex.Replace(text, "<span style=\"text-decoration: underline;\">.*?</span>", delegate(Match mContent)
        {
            return mContent.Value.Replace("<span style=\"text-decoration: underline;\">", "<u>").Replace("</span>", "</u>");
        }, RegexOptions.IgnoreCase);      

2 个答案:

答案 0 :(得分:2)

这应该可以解决问题:

text = Regex.Replace(text, 
    "<span style=\"text-decoration: underline;\">(.*?)</span>", 
    "<u>$1</u>",
    RegexOptions.IgnoreCase); // <u>Request Block Host</u>

这将匹配文字<span style="text-decoration: underline;">,后跟0组中捕获的任何字符的零个或多个,后跟文字</span>。它会将匹配的文本替换为<u>,然后是组1的内容,后跟文字</u>

答案 1 :(得分:1)

var _string = "<span style=\"text-decoration: underline;\">Request Block Host</span>";

var text = Regex.Replace(_string, "<.+>(.*)</.+>", "<u>$1</u>");

:d