[PHP-users 20444] Re: 再帰(?)正規表現置換について
Eiji Miwa
miwa @ offside.ne.jp
2004年 2月 19日 (木) 04:05:51 JST
ミワです。
#悔しいのでリベンジ。
On 2004/02/19, at 1:05, Eiji Miwa wrote:
>
> すいません。複雑になるとうまくいかないみたいです。
> (((?>.+?)|(?R))*?) の .+? の部分を、もっとちゃんと書かないと
> 駄目みたいですね。
$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 メーリングリストの案内