php preg_match没有给出预期的结果

时间:2012-11-27 10:22:20

标签: php preg-match

  

可能重复:
  How to parse and process HTML with PHP?

我希望这一个返回(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”(非区分大小写)匹配,后跟任何其他字符,但“&lt;”和“&gt;”,后跟“&gt;”,后跟任何其他字符,然后以“</textarea>”非大小写敏感

结束

有谁知道我的正则表达式模式有什么问题?

2 个答案:

答案 0 :(得分:1)

这是换行符。检查Pattern Modifier,'s'和'i'。

答案 1 :(得分:0)

您错过了/s标志。您的输入文本包含换行符,这就是.*?默认情况下无法找到它的原因。

更重要的是,您缺少/i标志,表示不区分大小写。无需撰写[aA][bB] ...