如何使用正则表达式提取CDATA之间的字符串部分?

时间:2012-06-13 05:42:11

标签: php regex

如何使用php提取CDATA标签中的字符串? 比如我有

$str = "<![CDATA[this is my text]]>";

使用正则表达式如何提取字符串“这是我的文字”?

2 个答案:

答案 0 :(得分:6)

您可以使用此正则表达式:/<!\[CDATA\[(.*?)\]\]>/

$str = "<![CDATA[this is my text]]>";

$matches = array();
preg_match('/<!\[CDATA\[(.*?)\]\]>/', $str, $matches);
echo $matches[1]; // this is my text

在遇到第一个<![CDATA[之前,正则表达式会查找]]>后跟任何字符。

答案 1 :(得分:2)

如果您的字符串始终以<![CDATA[开头并以]]>结尾,则可以使用substr()

$str = "<![CDATA[this is my text]]>";
$output = substr($str,9,strlen($str)-12);
echo $output;