php 正则表达式 preg_replace html 标签
php regex preg_replace html tags
你好,我有以下代码:
$content = '<div class="style1" id="divelement" align="center">';
这是我的代码:
preg_replace('~<div\s*.*?(?:\s*class\s*=\s*"(.*?)"\s*|\s*id\s*=\s*"(.*?)"\s*)?>~i','<div class="" id="">', $content);
现在我正在尝试替换整个元素,但只保留 class 和 id。
最好使用像DOMDocument
这样的库来解析HTML。但是如果你真的必须用正则表达式来做......
不要在正则表达式中使用 |
,它匹配 class
或 id
,但不能同时匹配两者。
preg_replace('~<div\b.*?\bclass\s*=\s*"(.*?)".*?\bid\s*=\s*"(.*?)".*>~i','<div class="" id="">', $content);
请注意,只有当 class
在 DIV
中的 id
左侧时才有效。
你好,我有以下代码:
$content = '<div class="style1" id="divelement" align="center">';
这是我的代码:
preg_replace('~<div\s*.*?(?:\s*class\s*=\s*"(.*?)"\s*|\s*id\s*=\s*"(.*?)"\s*)?>~i','<div class="" id="">', $content);
现在我正在尝试替换整个元素,但只保留 class 和 id。
最好使用像DOMDocument
这样的库来解析HTML。但是如果你真的必须用正则表达式来做......
不要在正则表达式中使用 |
,它匹配 class
或 id
,但不能同时匹配两者。
preg_replace('~<div\b.*?\bclass\s*=\s*"(.*?)".*?\bid\s*=\s*"(.*?)".*>~i','<div class="" id="">', $content);
请注意,只有当 class
在 DIV
中的 id
左侧时才有效。