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

ruby-reference-manual:2622

From: "NARUSE, Yui" <naruse@a...>
Date: Sat, 30 Apr 2011 03:28:53 +0900
Subject: [ruby-reference-manual:2622] Re: 「マッチ」という用語

(2011/04/29 2:06), 5.5 wrote:
> 『詳説正規表現』(初版1刷)p. 26 にこうあります:
> 
>   筆者が「正規表現が文字列とマッチする」と言った場合,実際には,
>   文字列の一部でマッチするという意味である。厳密には「a」という
>   正規表現は cat とマッチするのではなく,cat の中にある a をマ
>   ッチするのである。これは混乱を招くほどのことではないが,一応
>   念のため。
> 
> したがって,著者は,基本的には [1] の意味で使っているようです。

まさにその引用部を読むと、

> 筆者が「正規表現が文字列とマッチする」と言った場合,実際には,
>   文字列の一部でマッチするという意味である。

「マッチする」と言った場合は [2] を指すって言ってますよね、これは。

>>> [3] の意味で「マッチする」「マッチを行う」「マッチを試みる」
>>> と書いている箇所が多数ありますが,これは「探索」と言い換え。
>>
>> [3] は「マッチさせる」じゃないですかね。
>> 探索でもいいと思いますが、まぁ言い換える必要は無い気がします。
> 
> 『詳説』では,探索を行うことを「マッチを行う」と書いているみたい
> です。
> 「マッチに成功」という表現も出てきます。
> これらの「マッチ」は,当てはまることではなく当てはめ,つまり,当
> ててみて当てはまるかどうか吟味することですね。
> 
> 「マッチを行う」は使っても問題ないような気がします。
> でも「マッチする」はさすがに無しだと思います。
> 
> 「マッチさせる」は「当てはまるようにする」ような印象を受けます。
> 
> 探索は情報科学(?)のごく一般的な用語でぴったりだと思うんですが。

「探索」って search で、「マッチ」は match なので、別の意味じゃないですか。
search を使うべきところで match を使っていたりその逆だと、
確かに直した方がいいかもしれません。
で、[3] で意図している例でどちらを使うべきかはちょっと悩むので、
具体例とその修正案があった方がいいんじゃないでしょうか。

ところで、search の訳語は文字列だと普通「検索」じゃないですかね。
ツリーやグラフだと幅優先探索みたいに探索を使うことが多いと思いますが。

>>> [4] は単に「探索に成功」。あるいは「ヒットする」。
>>
>> [2] と [4] を区別する意味は特には無い気がします。
>> 「マッチさせ、それが成功したらマッチした位置を、しなかったら nil を返す」
>> とかはあり得るのでそういうパターンでは「成功」とかありますかね。
>>
>>> [5] も「部分マッチ」という言葉を使う。
>>>
>>> 探索で得られた文字列は「マッチ文字列」。
>>> (「マッチする文字列」とは呼ばない)

指摘で漏れていましたが、これって例えば String#split とかがそうで、
http://doc.ruby-lang.org/ja/1.9.2/method/String/i/split.html
語を直しつつまとめると「マッチする文字列で分割し、
マッチした文字列は結果に含まれない」とか。
つまり、これって普通に時制なんじゃないですかね。
まだ分割しておらずマッチもしてないから「マッチする文字列」になってる、と。

>> [2] と区別する意味がよくわかりません。
> 
> [1] [2] は当てはまるか否か,どのように当てはまるかという関係性,い
> わば数学の話で,[3]〜[5] はメソッドの探索動作の話です。
> 
> 文脈で分かることが多いのですが,別物なので区別したいです。

うーん、わからないでもないんですが、やっぱり具体例を出して頂いた方が
いいんじゃないかな。

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