div
中的内容包括新行,制表符等等,这可能就是它不起作用的原因:
preg_match('/<div>(.*)</div>/', $i, $matches)
我也尝试了preg_match('/<div>(\n*)(.*)(\n*)</div>/', $i, $matches)
但仍然无效。你可以帮忙吗?
答案 0 :(得分:2)
使用preg_match('/<div>(.*)</div>/sm', $i, $matches)
。
有关详细信息,请参阅documentation。
答案 1 :(得分:1)
将多线修饰符(m
)添加到正则表达式中:
preg_match('/<div>(.*)</div>/m', $i, $matches);
您可以在php.net上阅读模式修饰符。
虽然这应该有效,但请不要使用regexp解析HTML。通过一些搜索,可以在此页面上找到很多信息。
答案 2 :(得分:1)
尝试使用 sm 标志:
preg_match('/<div>(.*)<\/div>/sm', $i, $matches);