$p = "|<[^>]+>(.*?)</[^>]+>|i";
$str = "<b>example: </b><div align=left>this is a test</div>";
preg_match_all($p, $str, $matches);
print_r($matches);
其实,实际上浏览器中没显示html标签,但是实际上$matches[0]中确实是匹配到了标签的,并且存了数组中,是指html标签被浏览器解析掉了,所以没有显示。
看打印出来的数据可以知道,其实无论是选择$matches[0]还是$matches[1]都不会得到标签<li></li>,实践是检验真理的唯一标准,希望可以帮到你,兄弟
$p = "/<b>(.*?)<\/b>/i"; 拿我写的这个举例子 你获取到的有b标签的会被存放在$matches[0]中,因为$matches[0]种存放的是匹配完整表达式的结果,$matches[1]存放的只是(.*?)匹配的结果,没有包含前边后边的标签
$p = "/<b>(.*?)<\/b>/i";