ruby-reference-manual:2618
From: "NARUSE, Yui" <naruse@a...>
Date: Fri, 29 Apr 2011 00:55:55 +0900
Subject: [ruby-reference-manual:2618] Re: 「マッチ」という用語
(2011/04/28 22:53), 5.5 wrote: > 正規表現に関する記述で,「マッチ」という言葉が多様な意味で > 使われています。 > 現状で,おおむね以下のような使われ方がされているようです。 > > (s を文字列,r を正規表現とする) > [1] s が r に当てはまること > [2] s が,r に当てはまる部分文字列を持つこと > [3] s の中で r に当てはまる部分文字列を探索すること > [4] 探索が成功すること > [5] s の中で r に当てはまる部分文字列の存在を判定すること。 > > 本来の意味は [1] だけだと思うので,「マッチする」を [1] に > 限って使うことを提案します。 > 具体的には,[1] の状況を > ・s は r にマッチする > ・r は s にマッチする > と呼ぶことに。 grep 以降の「正規表現」において「本来」を論ずることがナンセンスだと思います。 そもそも Ruby のメソッドで [1] を扱うものってありましたっけ。 これを実現したい場合は通常 /\A...\z/ とする必要があるんじゃないかな。 というわけで、こちらをむしろ特筆するべきだと思います。 > [2] は「部分マッチ」という用語を導入して「s は r に部分マッ > チする」としたい。 > 正規表現に関する多くの解説書・ウェブサイトがマッチと部分マ > ッチを区別せずに「マッチ」と書いているために,初心者を混乱 > させています。 長いものに巻かれるべきじゃないですかね。 日本語において最も長いのは詳説正規表現だと思うので、 これでの語をに習うのが多くの場合妥当だと思っています。 > [3] の意味で「マッチする」「マッチを行う」「マッチを試みる」 > と書いている箇所が多数ありますが,これは「探索」と言い換え。 [3] は「マッチさせる」じゃないですかね。 探索でもいいと思いますが、まぁ言い換える必要は無い気がします。 > [4] は単に「探索に成功」。あるいは「ヒットする」。 [2] と [4] を区別する意味は特には無い気がします。 「マッチさせ、それが成功したらマッチした位置を、しなかったら nil を返す」 とかはあり得るのでそういうパターンでは「成功」とかありますかね。 > [5] も「部分マッチ」という言葉を使う。 > > 探索で得られた文字列は「マッチ文字列」。 > (「マッチする文字列」とは呼ばない) [2] と区別する意味がよくわかりません。 -- NARUSE, Yui <naruse@a...> -- ML: ruby-reference-manual@m... 使い方: http://QuickML.com/
2617 2011-04-28 15:53 [5.5@m... ] 「マッチ」という用語 -> 2618 2011-04-28 17:55 ┗[naruse@a... ] 2621 2011-04-29 07:17 ┗[5.5@m... ] 2622 2011-04-29 20:28 ┗[naruse@a... ] 2672 2011-05-26 15:50 ┗[5.5@m... ]