PHP正则表达式删除所有复选框

PHP正则表达式删除所有复选框,php,regex,Php,Regex,我试图使用preg\u replace删除HTML变量中的所有复选框。这就是我现在使用的: echo preg_replace('/<input type="checkbox".*autocomplete="off">/', '', $html); echo preg_替换('/','$html); 要替换复选框,请执行以下操作: <label><input type="checkbox" name="65[]" id="289" value="289" val

我试图使用
preg\u replace
删除HTML变量中的所有复选框。这就是我现在使用的:

echo preg_replace('/<input type="checkbox".*autocomplete="off">/', '', $html);
echo preg_替换('/','$html);
要替换复选框,请执行以下操作:

<label><input type="checkbox" name="65[]" id="289" value="289" validate="required:true" autocomplete="off"> a.  date of encounter</label>
a。相遇日期
这根本不起作用。如果我将正则表达式更改为:

<input type="checkbox".*">
preg_replace('//is',''$html);

不要使用正则表达式解析HTML。使用适当的HTML解析模块。您无法用正则表达式可靠地解析HTML,在这条路上您将面临悲伤和挫折。一旦HTML改变了您的预期,您的代码就会被破坏。有关如何使用已经编写、测试和调试过的PHP模块正确解析HTML的示例,请参见。Regex是我所需要的,谢谢。如果你制作了输出HTML的代码,为什么不把输出它的代码改成不输出你想要消除的HTML呢?对你的意见发表评论不是我所要求的,这是一个问答论坛,不是一个经常发表意见的论坛。我问了一个问题,不是征求意见。输出复选框的代码对于另一个页面来说是一个巨大的功能,要使它对这一个页面进行过滤,需要花费数小时的工作才能确保我不会破坏上一个页面。这个正则表达式用了20分钟。谢谢。@AndyLester对于这种一次性的情况,我肯定会使用正则表达式。显然,如果您试图在DOM中操作一些东西,那么应该使用解析器(在大多数情况下也是如此),但这里他只需要一些快速简单的东西。为了让未来的读者清楚,原始问题中的
(.*)
是一个贪婪的匹配,匹配尽可能长的字符串。添加
使其成为一个非贪婪或节俭的匹配,匹配尽可能短的模式。另外,请注意,此答案将
*
中的0或更多更改为
+
中的1或更多。
preg_replace('/<input type="checkbox"(.+?)autocomplete="off">/is', '', $html);