网上扒出来的([^<>]*)正则代码,用的时候发现包含<>就失效了,具体代码如下:$str1 = "<script>DATA__=dfadfadf765577abc55fd</script>"; $str2 = "<script>DATA__=<asd>dfadfadf76<asd>5577abc55fd<asd></script>"; preg_match_all('/DATA__=([^<>]*)<\/script>/', $str1, $res1);preg_match_all('/DATA__=([^<>]*)<\/script>/', $str2, $res2);var_dump($res1);echo '<br>';var_dump($res2);array(2) { [0]=> array(1) { [0]=> string(37) "DATA__=dfadfadf765577abc55fd" } [1]=> array(1) { [0]=> string(21) "dfadfadf765577abc55fd" } }array(2) { [0]=> array(0) { } [1]=> array(0) { } }怎么让$res2能正常匹配结果为<asd>dfadfadf76<asd>5577abc55fd<asd>呢?麻烦大神写一下代码,方便的话顺带讲解一下,百度搜了2个小时,确实自己解决不了。。。
按照你的要求匹配asd标签的php程序如下(见图)点可以匹配除换行符外的所有字符,加模式符is表示匹配不区分大小写且点可以匹配换行符,问号是非贪婪匹配,匹配符合要求的最短字符串,结果取第一捕获组的数据.你的正则匹配除尖括号外的所有字符,所以无法匹配尖括号.