[#46878] ML への投稿が blade.nagaokaut.ac.jp 以外にも — "ISHIKAWA Takayuki" <rechka_osaka@...>

石川と申します。この ML へ投稿した e-mail が

10 messages 2010/03/03

[#46909] gemを実行すると大量のワーニングメッセージ — garyo hosu <garyohosu@...>

こんにちはgaryoといいます。

16 messages 2010/03/16
[#46910] Re: [ruby-list:46909] gemを実行すると大量のワーニングメッセージ — Moru <lateau@...> 2010/03/16

モルと申します。

[#46983] Ruby Summer of Codeのアイデアとかメンターについて — Shintaro KAKUTANI <shintaro@...>

Asakusa.rbのかくたにです。

12 messages 2010/03/31

[ruby-list:46926] Re: 正規表現マニュアルの先読みの記載

From: KIMURA Koichi <kimura.koichi@...>
Date: 2010-03-17 05:56:44 UTC
List: ruby-list #46926
木村です。

On Wed, 17 Mar 2010 13:08:44 +0900
"imagawa.yakata imagawa.yakata" <imagawa.yakata@gmail.com> wrote:

> http://www.ruby-lang.org/ja/man/html/_C0B5B5ACC9BDB8BD.html
> ↑ここの正規表現リファレンスマニュアルの先読みの例なのですが、
> 
> -----
> 
> (?=re1)re2
> 
> という表現は、re1 と re2 両方にマッチするものにマッチする正規表現で す。
> -----
> 
> ↑これは何にもマッチしません。
> re1の前の位置からre2を探すので、こういうパターンを作ることができても実際にマッチさせることは不可能なはずです。
> re1とre2の両方を含む場合にマッチ成功とするのであれば、例えば
> 
> (?=.*re1)(?=.*re2)
> (?=.*re1)(?=.*re2).*
> 
> ↑このようなパターンではないでしょうか?
> 
> わたしの誤解もしくは既出の問題であったら申し訳ありません。

ある文字列が、re1 と re2 にマッチするもの両方を含むものかどうかを検査するということであれば
今川さんの出されたこの例の方が良いですし、現状の記述では適当ではないといえると思います。

ただ、
> ↑これは何にもマッチしません。
というのも言い過ぎで、re1 と re2 のいずれかがもう一方の部分集合になっているときに
マッチに成功する可能性があります。以前それを活用した例をこのMLか、少なくともRubyに関連した
記事で見かけた覚えがあります。
#が、具体的にどういうものだったか思い出せないのですが。

また、

> re1の前の位置からre2を探すので、

とありますが、先読みは「幅を持たない」ので、この例でいうところの re1 と re2 の開始位置は
同じ場所になります。

-- 
木村浩一


In This Thread