<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 之间留下一个空格,是否可以直接在正则表达式中执行此操作?
答案 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);