-1

私はこのテンプレートファイルを持っています:

<!-- BEGIN TEST -->
<!-- BEGIN TEST2 -->
<!-- BEGIN TEST3 -->

<!-- END TEST3 -->
<!-- END TEST2 -->
<!-- END TEST -->

そしてそれを解析するためのこの正規表現:

 preg_match("@<!-- BEGIN (.*?) -->(.*?)<!-- END (.*?) -->@siu", $this->code, $matches);

これは(var_dump)を返します:

array(3) {
  [0]=>
  string(85) "<!-- BEGIN TEST -->
<!-- BEGIN TEST2 -->
<!-- BEGIN TEST3 -->

<!-- END TEST3 -->"
  [1]=>
  string(4) "TEST"
  [2]=>
  string(5) "TEST3"
}

このように機能させる方法:(@<!-- BEGIN (.*?) -->(.*?)<!-- END %1 -->@siuもちろんこれは機能しません。問題を示すのは私の例にすぎません)

4

1 に答える 1

1

あなたが正確に何を受信したいのかわかりません。おそらく次のようなものです:

$s = '<!-- BEGIN TEST --><!-- BEGIN TEST2 --><!-- BEGIN TEST3 --><!-- END TEST3 --><!-- END TEST2 --><!-- END TEST -->';

preg_match("@<!-- BEGIN (.*?) -->(.*?)<!-- END \\1 -->@siu", $s, $matches);

print_r($matches);
于 2012-07-12T18:39:04.277 に答える