我有div
名为
<div id="form">Content</div>
我希望使用div
将新内容替换为Preg_replace
的内容。
应该使用什么样的正则表达式。?
答案 0 :(得分:0)
You shouldn't be using a regex at all。 HTML可以有多种形式,您需要考虑所有这些形式。如果id / class没有出现在你期望的地方怎么办?正则表达式必须非常复杂才能获得合理的结果。
相反,你应该使用DOM解析器 - 或者我最近偶然发现的一个非常酷的工具,phpQuery。有了它,您几乎可以像使用jQuery一样访问PHP中的文档。
答案 1 :(得分:0)
这适用于您的情况:
$html = '<div id="content">Content</div>';
$html = preg_replace('/(<\s*div[^>]*>)[^<]*(<\s*\/div\s*>)/', '$1New Content$2', $html);
echo $html; // <div id="content">New Content</div>
但请注意,由于HTML不是常规语言,因此无法处理所有情况。我提供的简单正则表达式将在以下示例中产生错误输出:
<div class=">">Content</div>