-1

我有一个div

 <div id="form">Content</div>

我想div用新内容替换Preg_replace. 应该使用什么正则表达式。?

4

2 回答 2

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>
于 2012-05-08T01:03:06.107 回答
0

你根本不应该使用正则表达式。HTML 可以有多种形式,您需要将所有形式都考虑在内。如果 id/class 没有出现在您期望的位置怎么办?正则表达式必须非常复杂才能获得合理的结果。

相反,您应该使用 DOM 解析器——或者我最近偶然发现的一个非常酷的工具phpQuery。有了它,您几乎可以像使用jQuery一样在 PHP 中访问您的文档。

于 2012-05-06T07:00:32.997 回答