如何匹配这些标签之间的文字?
<!-- |IFNOT:ARCHIVE_PAGE| -->
some text
<!-- |END:IF| -->
感谢名单!
答案 0 :(得分:2)
这不是很值得推荐但是
<!-- \|IFNOT:ARCHIVE_PAGE\| -->((\s|.)*?)<!-- \|END:IF\| -->
答案 1 :(得分:2)
preg_replace("/<body>([\s\S]*.*)<\/body>/",$replace,$origional);
这将取代身体标签之间的整个内容。
答案 2 :(得分:1)
试试这个正则表达式:
(?<=<!-- \|IFNOT:ARCHIVE_PAGE\| -->)(\s|.)*?(?=<!-- \|END:IF\| -->)
答案 3 :(得分:0)
使用Perl,这里唯一的特殊字符是管道'|'。因此,以下正则表达式将匹配(并且由于捕获括号(。+)而返回)您要查找的文本:
{<!-- \|IFNOT:ARCHIVE_PAGE\| -->\s*(.+)\s*<!-- \|END:IF\| -->}s
请注意,'s'修饰符让正则表达式匹配多行,捕获括号前后的\ s *表示返回的匹配中不包含空格(包括换行符)。