正则表达式替换输入标签

时间:2013-06-23 14:32:35

标签: php regex preg-replace

我输入了这样的标签:

<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 )

我没有成功。

我的功能有什么错误?也许是正则表达式?

替换字符串中所有输入标签的函数没问题。

3 个答案:

答案 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