如何从列表中删除选定的特殊字符

时间:2009-11-27 14:01:59

标签: c# asp.net

我有C#list,其中很多值都是这样的

<b>Moon</b>

我希望删除<b></b>

我想要这样的结果Moon

如何从列表中删除此类字符。

5 个答案:

答案 0 :(得分:5)

您可以使用XDocument删除XML标记:

string StripXmlTags(string xml)
{
    XDocument doc = XDocument.Parse(xml);
    return doc.Root.Value;
}

示例:

[Test]
public void Test()
{
    string xml = "<root><b>nice </b><c>node</c><d><e> is here</e></d></root>";
    string result = StripXmlTags(xml);

    Assert.AreEqual("nice node is here", result);
}

答案 1 :(得分:1)

试试这个:

var moonHtml = "<b>Moon</b>";
var regex = new Regex("</?(.*)>", RegexOptions.IgnoreCase | RegexOptions.Multiline);
var moon = regex.Replace(moonHtml, string.Empty);

答案 2 :(得分:0)

试试这个:

Regex.Replace("<b>Moon</b>", @"\<.+?\>", "")

答案 3 :(得分:0)

string noHtml = Regex.Replace(inputWithHtmlTags, "<[^>]+>", "");

答案 4 :(得分:0)

这个程序是一个非常粗略的例子,它将删除所有标签的正则表达式,它足够灵活,也可以删除斜体和下划线。它使用IgnoreCase选项来防止<b><B>在输入中,并将执行多行搜索。运行它的输出将是“月球上的人”。我用 。*?意味着零或更多以捕获空括号的情况,例如<>

using System;
using System.Text.RegularExpressions;

namespace ConsoleApplication3
{
    class Program
    {
       static void Main(string[] args)
       {
           var input = "<b>The</b> <i>Man</i> on the <U><B>Moon</B></U>";

           var regex = new Regex("<.*?>", RegexOptions.IgnoreCase | RegexOptions.Multiline);

           var output = regex.Replace(input, string.Empty);

           Console.WriteLine(output);
           Console.ReadLine();
      }
    }

}