[PHP-users 20445] Re: 再帰(?)正規表現置換について
Eiji Miwa
miwa @ offside.ne.jp
2004年 2月 19日 (木) 04:28:58 JST
ミワです。
#何度もすいません。
On 2004/02/19, at 4:05, Eiji Miwa wrote:
> $nest = 1;
> $pattern = array_fill ( 0, $nest,
> '/<!--{(def\s+([A-Za-z][A-Za-z0-9_]*))}-->'.
> '(((?>(?:(?!\/?\1).)+?)|(?R))*?)'.
> '<!--{\/def\s+\2}-->/s' );
> $replacement = array_fill ( 0, $nest,
> '<?php if (@count($\2)) { ?>\3<?php } ?>' );
> $result = preg_replace ( $pattern, $replacement, $str );
古いのをペーストしてしまいました。
正しくはこんな感じです。
$nest = 1;
$pattern = array_fill ( 0, $nest,
'/<!--{(def\s+([A-Za-z][A-Za-z0-9_]*))}-->'.
'(((?>(?:(?!<!--{\/?\1}-->).)+?)|(?R))*?)'.
'<!--{\/def\s+\2}-->/s' );
$replacement = array_fill ( 0, $nest,
'<?php if (@count($\2)) { ?>\3<?php } ?>' );
$result = preg_replace ( $pattern, $replacement, $str );
--
miwa at offside.ne.jp
PHP-users メーリングリストの案内