2016-05-23 9 views
1

私はhtmlタグを使用することができますが、属性を持たないコードを作成しようとしています。Regex、preg_matchは入力した文字列に関係なく一致します

これは私のコードです:私は、タグ属性から空でも「マッチ」メッセージが出ています何らかの理由で

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

+2

あなたは***の態度***をどういう意味ですか?あなたは属性を意味しましたか?また、 'saveHTML()' htmlを使用すると、headerタグとbodyタグが含まれます。 –

+0

属性、私の悪い。私が$ postからのデータに注意を払うと、

になります。 @PedroLobito –

+1

なぜあなたはHTMLパーサーを使いたいのですか? – splash58

答えて

0

パターンでは、空白文字の後ろに小文字の後の文字が必要なため、パターンはHTML文字列と一致しません。あなたの文字列のHTMLタグには空白がなく、したがって一致しません。したがって、preg_match関数の結果を無効にすると、 "matches"がエコーされます。

HTML文字列が<p >a</p>または<p>a</p >の場合は、それぞれ<p >と完全な文字列に一致します。うまくいけば、この答えはあなたを正しい方向に向けるでしょう。

関連する問題