[PHP-doc 807] Re: preg_replace

Yoshinari Takaoka mumumu @ mumumu.org
2009年 8月 19日 (水) 12:15:08 JST


高岡です。

On Wed, 19 Aug 2009 05:47:19 +0900
TAKAGI Masahiro <matakagi @ gmail.com> wrote:

> > また、3つ目の段落で \\1 と $1 が混在していて、\\{1} はNGのようにも
> > 読めます。
> > 「好ましい形式」と述べている $1 に統一するか、併記するか にすべき
> > ではないでしょうか。
> >
> (.snip)
> こちらについては英語版のほうもあわせて変更することになるので、時間のと
> れるときに対応させていただきたいと思います。ご指摘いただきありがとうご
> > ざいました。

上記については、実際 \\{1} はNGのようです。

preg_replaceをちょっと試した結果、以下のようになりました。
(使い方が間違っていたら教えてください。ちなみに PHP 4.4.9 でも同じ結果です)

$ php --version
PHP 5.2.10 (cli) (built: Jun 20 2009 16:36:11)
Copyright (c) 1997-2009 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2009 Zend Technologies
$ php -r '$a = "1234ab"; var_dump(preg_replace("/a(b)/", "\\{1}1", $a));'
string(9) "1234\{1}1"
$ php -r '$a = "1234ab"; var_dump(preg_replace("/a(b)/", "\${1}1", $a));'
string(6) "1234b1"

よって、3つめの段落は \\{1} が実際に使えないことに対して注意喚起をしてい
る段落と理解すれば、英語版、日本語版ともに修正の必要はないと思われます。

> > 更に、上記の部分は
> > 「解決策は、\${1}1 を使用することです」
> > という記述なんですが、\${1} としなければならないのは二重引用符下で
> > 使われた時だけで、単引用符下で使われる場合は ${1} でOKですよね?
> > その辺りは触れなくてもいいんでしょうか?
> >

上記については、少しだけ修正の必要があるかもしれません。
(ただ、厳密に書くと冗長になるんですよね、、文章次第でしょうが)
高木さんと同様、暇を見つけて考えて見ます。

-- 
Yoshinari Takaoka (mumumu @ IRC)
reversethis -> gro tod umumum ta umumum


PHP-doc メーリングリストの案内