正则表达式匹配CDATA部分

时间:2013-12-20 07:20:56

标签: xml regex

我需要一个正则表达式匹配:

开头
<![CDATA[  

包含:

wildcard

(很多,包括但不限于<>"./以及多行的字母和数字)。

并以:

结束
]]>

我用它来清除一个非常大的ajax xml文件的嘴唇。

我环顾四周,无法弄清楚如何匹配感叹号

我尝试使用http://www.jslab.dk/tools.regex.php生成一个,其中包含:

/^(?:<\!\[CDATA\[)\]\]>$/m

在使用的测试人员或编辑器中不匹配。

2 个答案:

答案 0 :(得分:1)

试试这个正则表达式

<!\[CDATA\[.*?\]\]>

OR

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

Please See Demo Here

答案 1 :(得分:0)

请找到与正则表达式匹配的以下PERL代码。

PERL代码: -

#!C:\Perl64\bin
$regex = "<![CDATA[ Shanghai Taipei Tokyo !!!!?<,;'[*()&^%$#@! CDATA TorontoOxford ] is a registered [trade mark of Oxford University Pressin the UK New YorkRevised text ?? John Guy 2000 ]]>";
if ("$regex" =~ m/^(<!\[CDATA\[)/ && "$regex" =~ m/(\]\]>)$/)
{
    print "Success scenario matched \n";
    print "$regex is matched \n";
} else {
    print "Failure scenario matched \n";
    print "$regex is not matched \n";
}

输出: -

Success scenario matched
<![CDATA[ Shanghai Taipei Tokyo !!!!?<,;'[*()&^%-1! CDATA TorontoOxford ] is a r
egistered [trade mark of Oxford University Pressin the UK New YorkRevised text ?
? John Guy 2000 ]]> is matched

希望这可以帮到你

由于