正则表达式匹配的PHP HTML体的内容
题
我需要在PHP一个正则表达式对元件的标签之间的匹配内容,例如<body>
和</body>
与Perl兼容preg_match
。
到目前为止我试图与:
// $content is a string with html content
preg_match("/<body(.|\r\n)*\/body>/", $content, $matches);
print_r($matches);
...但打印输出是一个空数组。
解决方案
您只需添加s
修饰符,这样的点匹配所有的字符,包括新行:
preg_match("/<body.*\/body>/s", $content, $matches);
如在doc说明: HTTP:// NL2。 php.net/manual/en/reference.pcre.pattern.modifiers.php
其他提示
默认一行perl的正则表达式匹配
您必须通过添加S或后米到指定你想要做的多线搜索最后/
例如:
$> perl -e 'print $1 if "bla\nbla\n<body>\nfirst line\n second line\n</body>\nbla" =~ /^.*<body>(.*)<\/body>.*$/s'
不隶属于 StackOverflow