我输入了这样的标签:
<input style="font-size:12px;width:100%" type="text" value="http://www.google.de/ggg">
想要什么都不替换它们。 这就是我试过的:
$pattern = '/<input style="font-size:12px;width:100%" type="text" value="(.+?)">/';
echo preg_replace( $pattern, "", $content )
我没有成功。
我的功能有什么错误?也许是正则表达式?
替换字符串中所有输入标签的函数没问题。
答案 0 :(得分:0)
您可能需要一些pattern modifiers我假设您有一个文本块,因此请尝试在模式后添加sU
。
答案 1 :(得分:0)
将替换所有input
标记,无论它们是否以空格开头。 /i
忽略大小写,/x
忽略regexp中的空格,因此它的主要目的是更具可读性regexp,
echo preg_replace("/<\s* input [^>]+ >/xi", "", $content);
答案 2 :(得分:0)
使用DOM对象通常比regexp更适合处理HTML。
$content = '<input style="font-size:12px;width:100%" type="text" value="asd"/>' ;
$dom = new DOMDocument ;
$dom->loadHTML($content);
$node = $dom->getElementsByTagName("input")->item(0);
$node->setAttribute("value", "");
echo $dom->saveHTML() ;
这也可以解释原因:RegEx match open tags except XHTML self-contained tags