正则表达式,preg_match是匹配,无论我输入什么字符串

时间:2016-05-23 14:19:16

标签: php regex

我正在尝试创建一个允许我使用html标签但没有任何属性的代码。

这是我的代码:

$dom->loadHTML("<p>a</p>");
$post = $dom->saveHTML();
if (!preg_match("/<.+\s[^A-Za-z0-9]?>/", $post)) {
    echo "matches";
}

由于某些原因,即使标签在属性中为空,我也会收到“匹配”消息。

1 个答案:

答案 0 :(得分:0)

该模式与您问题中的HTML字符串不匹配,因为该模式要求后跟一个小字符的字符后跟一个空白字符。字符串中的HTML标记中没有空格,因此它不匹配,因此当您否定preg_match函数的结果时,将回显“匹配”。

如果您的HTML字符串为<p >a</p><p>a</p >,则它将分别匹配(<p >和整个字符串)。希望这个答案能指出你正确的方向。