有的时候,因为要匹配的内容中有换行,导致了匹配不到或不能正常匹配,最后得知在表达式前边添加 (?s) 即可忽略换行符,完美匹配
举个栗子:
$detail = "<li>地址:
水产西路688号
</li>";
//如果写成下面这样是匹配不到的
preg_match_all('/<li>(.*)<\/li>',$detail,$add);
//正确的写法是
preg_match_all('/(?s)<li>(.*)<\/li>',$detail,$add);