C#初学者:删除字符串中两个字符之间的所有字符(正则表达式?)

Posted

技术标签:

【中文标题】C#初学者:删除字符串中两个字符之间的所有字符(正则表达式?)【英文标题】:C# Beginner: Delete ALL between two characters in a string (Regex?) 【发布时间】:2013-12-17 06:37:59 【问题描述】:

我有一个带有 html 代码的字符串。我想删除所有 html 标签。所以 之间的所有字符。

这是我截取的代码:

WebClient wClient = new WebClient();
SourceCode = wClient.DownloadString( txtSourceURL.Text );
txtSourceCode.Text = SourceCode;
//remove here all between "<" and ">"
txtSourceCodeFormatted.Text = SourceCode;

希望有人可以帮助我

【问题讨论】:

如果 &lt;&gt; 字符出现在 cmets、脚本、字符串等中怎么办? 不,不要使用正则表达式来解析 HTML 字符串。一场真正的噩梦在等着你。这是 SO 中最受欢迎的答案之一。 ***.com/questions/1732348/… 最好的方法是使用专门的 HTML 解析器,例如 HTML Agility Pack @Steve 我最喜欢的答案:) 在这种情况下使用 .NET XML-Parser 也可能有效?还是我错了? 【参考方案1】:

试试这个:

txtSourceCodeFormatted.Text = Regex.Replace(SourceCode, "<.*?>", string.Empty);

但是,正如其他人提到的,handle with care。

【讨论】:

请注意,在极少数情况下,这可能会导致意外行为!【参考方案2】:

根据Ravi's answer,可以使用

string noHTML = Regex.Replace(inputHTML, @"<[^>]+>|&nbsp;", "").Trim();

string noHTMLNormalised = Regex.Replace(noHTML, @"\s2,", " ");

【讨论】:

以上是关于C#初学者:删除字符串中两个字符之间的所有字符(正则表达式?)的主要内容,如果未能解决你的问题,请参考以下文章

C# String 删除两个字符之间的字符

从字符串中删除Python中两个特定字符之间包含的所有字符

删除 Hive SQL 查询中两个子字符串之间的所有字符

替换/删除两个字符之间的所有内容[重复]

如何仅替换不在 c# 中的两个引号之间的字符串

C# Regex - 如何从字符串中删除多个成对的括号