[#23332] to_str再考 — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです

15 messages 2004/04/05

[#23380] [SEGV] make test-all (bccwin32 ruby1.9.0) — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp>

山本です。

17 messages 2004/04/15
[#23400] Re: [SEGV] make test-all (bccwin32 ruby1.9.0) — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2004/04/16

山本です。落ちる場所がわかりました。

[#23402] Re: [SEGV] make test-all (bccwin32 ruby1.9.0) — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2004/04/16

山本です。

[#23403] Re: [SEGV] make test-all (bccwin32 ruby1.9.0) — nobu.nakada@... 2004/04/16

なかだです。

[#23405] Re: [SEGV] make test-all (bccwin32 ruby1.9.0) — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2004/04/16

山本です。

[#23407] Re: [SEGV] make test-all (bccwin32 ruby1.9.0) — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2004/04/16

山本です。

[ruby-dev:23316] Re: English alias

From: Minero Aoki <aamine@...>
Date: 2004-04-02 09:49:03 UTC
List: ruby-dev #23316
青木です。

  In mail "[ruby-dev:23300] Re: English alias"
    nobu.nakada@nifty.ne.jp wrote:

> なかだです。

> >     $`         Regexp.last_match.pre_match
> >     $'         Regexp.last_match.post_match
> >     $+         Regexp.last_match[-1]
> 
> $"もそうなんですが、一番使いたくない$`とか$'の代替手段がやたら
> 長いというのがどうも。Regexp#matchを使うのでもいいのですが、
> whenではそうもいきませんし。

やっぱり when には通用しないんですが、
マッチして $` や $' を返すメソッドってどうでしょう。
String#slice(re), slice(re, nth) からの連想で考えました。

  # $` を返す。マッチしなければ nil
  p "aaabbbccc".before(/bbb/)  #=> "aaa"

  # $' を返す。マッチしなければ nil
  p "aaabbbccc".after(/bbb/)   #=> "ccc"

おまけ

  # [$` + $&, $'] を返す。マッチしなければ nil
  token, post = * "aaabbbccc".read(/bbb/)
  p token  #=> "bbb"
  p post   #=> "ccc"

レクサを書くのに便利です!
-------------------------------------------------------------------
青木峰郎

In This Thread