正则表达式用C#解析CDATA的HTML

我想解析包含在CDATA中的任何HTML数据。

例如<![CDATA[

Approved

]]>

谢谢!

处理你的例子的表达式将是

 \<\!\[CDATA\[(?[^\]]*)\]\]\> 

组“文本”将包含您的HTML。

您需要的C#代码是:

 using System.Text.RegularExpressions; RegexOptions options = RegexOptions.None; Regex regex = new Regex(@"\<\!\[CDATA\[(?[^\]]*)\]\]\>", options); string input = @"Approved]]>"; // Check for match bool isMatch = regex.IsMatch(input); if( isMatch ) Match match = regex.Match(input); string HTMLtext = match.Groups["text"].Value; end if 

“输入”变量就在那里,只是为了使用您提供的示例输入

我知道这可能看起来非常简单,但你尝试过string.Replace()吗?

 string x = "Approved]]>"; string y = x.Replace("", string.Empty); 

可能有更有效的方法来处理这个问题,但可能你想要的东西很容易……

没有太多细节,但如果没有你没有描述的复杂性,一个非常简单的正则表达式应该匹配它:

 // 

查找CDATA部分的正则表达式将是:

 (?:) 
 Regex r = new Regex("(?<= 

为什么要将Regex用于这么简单的任务? 试试这个:

 str = str.Trim().Substring(9); str = str.Substring(0, str.Length-3);