从具有条件的字符串中删除特殊字符

时间:2013-01-30 09:43:53

标签: c# .net

我有一个字符串如下 -

"This is <h2>a place/h2>
<p>You know its a good place!</p>
<ul>
    <li>Booked your ticket #20130114074912_AN3P703C on Monday, January 14</li>
</ul>"

所以,我希望我的字符串如下

"This is a place
You know its a good place.
Booked your ticket #20130114074912_AN3P703C on Monday, January 14"

5 个答案:

答案 0 :(得分:2)

我相信这是你的答案。 link

试试这个:

// <summary>
/// Remove HTML from string with Regex.
/// </summary>
public static string StripTagsRegex(string source)
{
   return Regex.Replace(source, "<.*?>", string.Empty);
}

输出:

Input:    <p>The <b>dog</b> is <i>cute</i>.</p>
Output:   The dog is cute.

答案 1 :(得分:0)

您可以使用以下方法从任何字符串中删除HTML标记

static string StripHTML (string inputString)
{
  return Regex.Replace(inputString, "<.*?>", string.Empty);
}

答案 2 :(得分:0)

这可以完成您的工作

String neededString = Regex.Replace(source, "<.*?>", string.Empty);

对于更复杂的字符串,包含CSS,JavaScript节点u可以使用以下

String neededStringRegex.Replace(subjectString, @"<(style|script)[^<>]*>.*?</\1>|</?[a-z][a-z0-9]*[^<>]*>|<!--.*?-->", "")

答案 3 :(得分:0)

下载并引用HTML Agility Pack,然后调用以下内容:

var htmlDoc = new HtmlDocument();
htmlDoc.LoadHtml(input);
string output = htmlDoc.DocumentNode.InnerText;

这仍然不会删除格式错误的/h2>标记,但它应该处理的HTML比正则表达式要多得多。

答案 4 :(得分:0)

这应该可以解决问题

string input = "This is <h2> a place</h2><p>You know its a good place!</p><ul>    <li>Booked your ticket #20130114074912_AN3P703C on Monday, January 14</li></ul>";
input = Regex.Replace(input, "<.*?>", string.Empty);

这将找到“&lt;&gt;”中包含的所有字符串并用“”或空字符串

替换它