[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 メーリングリストの案内