0

重複の可能性:
PHP で HTML を解析および処理する方法は?

これが (bool)True または int(1) を返すことを期待しています

echo var_dump(preg_match('/(<[tT][eE][xX][tT][aA][rR][eE][aA][^<>]*>)(.*?)(<\/[tT][eE][xX][tT][aA][rR][eE][aA]>)/', 
    "<textarea id='field-static_content' name='static_content' class='texteditor' ><p>
any content<p></textarea>"));

しかし、結果として int(0) を取得します。<textarea" " (大文字と小文字を区別しない) の後に "<" と ">" 以外の文字が続き、その後に ">" が続き、その後にその他の文字が続き、大文字と</textarea>小文字を区別しない " "で終わる任意の文字列と一致させようとします。

私の正規表現パターンの何が問題なのか誰か知っていますか?

4

2 に答える 2

1

改行です。パターン修飾子、「s」、および「i」を確認してください。

于 2012-11-27T10:27:38.427 に答える
0

/s旗がありません。入力テキストに改行が含まれているため、.*?デフォルトで改行が見つかりません。

さらに重要なのは/i、大文字と小文字を区別しないというフラグがないことです。書く必要はありません[aA][bB]...

于 2012-11-27T10:27:46.927 に答える