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