【发布时间】:2013-03-15 09:15:10
【问题描述】:
如何匹配这些标签之间的文字?
<!-- |IFNOT:ARCHIVE_PAGE| -->
some text
<!-- |END:IF| -->
谢谢!
【问题讨论】:
-
*.com/questions/1732348/… 也在这里 :)
-
对不起,我需要全部匹配所有块。 { 一些文本 } 用标签匹配此文本的所有文本
如何匹配这些标签之间的文字?
<!-- |IFNOT:ARCHIVE_PAGE| -->
some text
<!-- |END:IF| -->
谢谢!
【问题讨论】:
这不是很推荐,但是
<!-- \|IFNOT:ARCHIVE_PAGE\| -->((\s|.)*?)<!-- \|END:IF\| -->
【讨论】:
preg_replace("/<body>([\s\S]*.*)<\/body>/",$replace,$origional);
这将替换正文标签之间的全部内容。
【讨论】:
试试这个正则表达式:
(?<=<!-- \|IFNOT:ARCHIVE_PAGE\| -->)(\s|.)*?(?=<!-- \|END:IF\| -->)
【讨论】:
使用 Perl,这里唯一的特殊字符是管道“|”。因此,以下正则表达式将匹配(并由于捕获括号 (.+) 而返回)您正在查找的文本:
{<!-- \|IFNOT:ARCHIVE_PAGE\| -->\s*(.+)\s*<!-- \|END:IF\| -->}s
注意's'修饰符让正则表达式匹配多行,捕获括号前后的\s*表示返回的匹配中不包含空格(包括换行符)。
【讨论】: