[前][次][番号順一覧][スレッド一覧]

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...            ]