用PHP中的preg_replace删除替换空间?

时间:2016-09-25 19:50:35

标签: php regex preg-replace pcre

<a param1="false" class="param2" id="id#12" href="#1">toto</a>

我在 PHP 中创建了 preg_replace ,以删除html文本中的某些参数:

$re = "/(param1=\"false\"|class=\"param2\"|id=\"id#([^\"]+)\")/";

$text = preg_replace($re, " ", $data->text->value); 

我获得了 html 链接:

<a href="#1">toto</a>

我想在和href 之间留下一个空格,是否可以直接在正则表达式中执行此操作?

3 个答案:

答案 0 :(得分:1)

按以下方式更改常规常规

$re = '/(param1="false"\s+|class="param2"\s+|id="id#([^\"]+)"\s+)/';

您需要在每个组件中传递\s+

并按以下方式更改preg_replace()功能,

$text = preg_replace($re, "", $data->text->value);

不要用空格替换它们,就是这样。

答案 1 :(得分:0)

假设您必须在&#34; preg_match&#34;中使用所有backrefrence。这是你可以完成的唯一方法

$re = "/<a.*(param1=\"false\"|class=\"param2\"|id=\"id#([^\"]+)\")/";
$text = preg_replace($re, "<a", $data->text->value);

答案 2 :(得分:0)

你可以试试这个:

$re = "/(param1=\"false\"|class=\"param2\"|id=\"id\#([^\"]+)\")([\ ]{1,}?)/";
$text = preg_replace($re, "", $data->text->value);

Regex101