正则表达式用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);