php正则 包含<>的怎么写?

网上扒出来的([^<>]*)正则代码,用的时候发现包含<>就失效了,具体代码如下:
$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个小时,确实自己解决不了。。。
最新回答
思绪づ走了

2023-09-23 12:19:01

按照你的要求匹配asd标签的php程序如下(见图)

点可以匹配除换行符外的所有字符,

加模式符is表示匹配不区分大小写且点可以匹配换行符,

问号是非贪婪匹配,匹配符合要求的最短字符串,

结果取第一捕获组的数据.

你的正则匹配除尖括号外的所有字符,所以无法匹配尖括号.