0

これらのタグ間でテキストを一致させる方法は?

<!-- |IFNOT:ARCHIVE_PAGE| -->
some text
<!-- |END:IF| -->

ありがとう!

4

4 に答える 4

2

これはあまりお勧めできませんが

<!-- \|IFNOT:ARCHIVE_PAGE\| -->((\s|.)*?)<!-- \|END:IF\| -->
于 2013-03-15T09:29:12.323 に答える
2
preg_replace("/<body>([\s\S]*.*)<\/body>/",$replace,$origional);

これにより、bodyタグ間のコンテンツ全体が置き換えられます。

于 2013-11-18T13:02:18.667 に答える
1

この正規表現を試してください:

(?<=<!-- \|IFNOT:ARCHIVE_PAGE\| -->)(\s|.)*?(?=<!-- \|END:IF\| -->)
于 2013-03-15T09:18:42.357 に答える
0

Perlを使用する場合、ここでの唯一の特殊文字はパイプ'|'です。したがって、次の正規表現は、探しているテキストと一致します(そして、角かっこ(。+)をキャプチャするために戻ります)。

{<!-- \|IFNOT:ARCHIVE_PAGE\| -->\s*(.+)\s*<!-- \|END:IF\| -->}s

's'修飾子を使用すると、正規表現が複数の行に一致します。キャプチャブラケットの前後の\ s *は、返された一致に空白(改行を含む)が含まれないことを意味します。

于 2013-03-15T09:30:58.537 に答える