館林です。

 "NAKAMURA, Hiroshi" <nakahiro / sarion.co.jp> さんが
                2000/02/07 午後 09:21:31に書いた
 「[ruby-list:20563] Re: エスケープされていないものだけを置換」 のお返事です:

> なひです.
> 
> > From: "GOTO Kentaro" <gotoken / math.sci.hokudai.ac.jp>
> > Sent: Monday, February 07, 2000 8:58 PM
> 
> > > _を空白に置換したいのですが、\_は置換したくないのです。
> > 
> > >a.gsub(/([^\\])[_]/){$1+" "}
> > 
> > 適用範囲によりますが、これだと先頭の _ は置換できないので、
> > 次のようにした方が安全かも知れません。
> > 
> > a.gsub(/(^|[^\\])_/, '\1 ')
> 
> a.gsub( /(\G|[^\\])_/, '\1 ' )
> 
> のほうが...あれ? \Gないんだったっけ.えーと,

 もしあったとして、どういう時にうれしいんでしょう?

\G ...Perl5.005で新たに導入された正規表現で
  直前にm//gがマッチしていた場所にのみマッチする。
  /gが指定されていたときのみ動作する。

ということらしいですが、うれしさが分からない・・・。


#引用文は、修正してあります。
>   b = a.dup
>   nil while b.sub!( /(^|[^\\])_/, '\1 ' )
> 
> かな?
> 
> # 1.5.2では
> #   nil while b.sub!( /(^|[^\\])_/, '\1 ' ) && $~
> # ですね.^^;

 1.4.3と1.5.2が違う理由が、さっぱりわからないですが、こういう
ものなんですね。きっと。

 これからも、よろしくお願いします。

========================================================
   綾乃介@IBARAKI Univ.
      E-mail: aya / big.or.jp
      URL:http://www5.big.or.jp/~aya/
========================================================
茨城県日立市の総合情報サイト
    メディアネットワーク マンボウ WebSite
                http://manbow.cgi-space.to/
========================================================