我有C#list,其中很多值都是这样的
<b>Moon</b>
我希望删除<b>
和</b>
。
我想要这样的结果Moon
。
如何从列表中删除此类字符。
答案 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();
}
}
}