• ベストアンサー

regular expression

正規表現のことを英語で regular expression というそうですが、どうして、regular expression が正規表現の意味になるのか、わかりません。

質問者が選んだベストアンサー

  • ベストアンサー
noname#195146
noname#195146
回答No.4

 他の回廊者様への補足、 >すみません。知りたかったのは、どうして、* や $ や ^ だのを使うのがどうして、regular なのかということでした。 を拝読して、ようやく疑問に思われている点を理解しました。regularに「正規」の訳語を当てたのは、特に意味はないのですが、regularが使われているのは「規則正しい」「秩序だった」「規則的な」という意味を持つことによります。  それがどういうことかと申せば、文法研究が元となっています。中でも言語を形式的に研究する分野です。 ・形式言語(ウィキペディア) http://ja.wikipedia.org/wiki/%E5%BD%A2%E5%BC%8F%E8%A8%80%E8%AA%9E ・同英語版 http://ja.wikipedia.org/wiki/%E5%BD%A2%E5%BC%8F%E8%A8%80%E8%AA%9E  日本語版には「正規」の言葉は見当たりませんが、英語版にはregualrの語がいくつもあります。  文の書き換えの規則がある方法でできる言語があれば、その書き換え規則を正規文法(regular grammar)と呼んでいます正規文法があるなら、。機械的な書き換えができることを意味します。  正規表現は、例えば*が任意の文字列、?が一文字を表すとして、abc*とすればabcで始まる任意の文字列を意味することができます。a?cdならaの次が任意の一文字、続いてcdです。文字列検索ではよく使われますが、明確な対応規則があるから機械的にできることです。  通常は言語(英語ならアルファベット)として使っていない記号を使って、通常使う単語に明確なルールで規則的に対応させているわけですね。これは一種の文法といえます。  そういう明確な対応規則を指して"regular"と呼ぶことにし(他の語もあり得たのですが、regularがたまたま選ばれた)、その訳語として「正規」が選ばれたのです(これも、たまたまそうしただけ)。

moo_a3123
質問者

お礼

再度、回答有難うございました。 なるほど、そういうことだったんですね。納得しました。

その他の回答 (3)

  • Him-hymn
  • ベストアンサー率66% (3489/5257)
回答No.3

regular expressionには2つの場合があります。つまり、コンピューター用語と言語学的用語の場合です。 →http://en.wikipedia.org/wiki/Regular_expression ここに2つの用語ということが明記されています。 このサイトの説明では、最初の説明はすべてコンピューターで、その次にRegular expressions describe regular languages in formal language theory. とあります。 コンピューター用語としては、演算子を用いた文字列表現をregular expressionsと言い、「正規表現」と訳していますし、英語という言語に関しての表現であれば、その使い方が正規の使い方かどうかという文脈で使うことになります。 ついでに regular expression formal expression standard expression proper expression など、いろいろ言えますね。こういう表現のうちの1つということになります。 難しく考える必要はないと思いますが、如何でしょうか。

回答No.2

こんばんは。 本来、コンピュータ系の質問で、英語を得意とする方は、あまり認識はしていないような気がします。 私が知りうる、"Regular Expression" は、元はUnix系のOSで使われたもので、今では、検索キャラクタまたは、メタ・キャラクタを連想させますが、本来は、the algebra of regular sets(正則集合の代数)の表現(Expression)という意味だそうです。「正則」というのは、コンピュータなどの規則に則った形式言語で、英語では、"Regular" と呼ばれます。 私は、業界の用語の翻訳の決定の現場に居合わせたことがあったので、同じではないかと推測したのですが、どうやら、違っているようです。 遥か昔、1940年代の上記の正則表現を由来するもので、1950年を皮切りに、1970年代には、Unix ツールが続々と生まれた時に、日本でもツールの翻訳(日本語対応?)をした時に、合わせて、その用語も日本語化されたものだと思われます。あの頃、大手コンピュータ会社(富士通)などの人間が、関与していた記憶はあります。そのツールは、いわゆる「GNU(著作権保有のまま、ソース公開」として供給されました。 ただ、ご質問の意図が分からないのですが、翻訳の立場からすれば、"Regular Expression"文字通り、その翻訳には何の工夫も認められません。Regular は「正規の」で、Expression は、「表現」ですから、合わせて「正規表現」となったわけです。コンピュータ用語では、もしも、数学に先に単語がある場合は、それに優先されますが、これは、そのようなことはないようです。 正規表現の由来 http://msdn.microsoft.com/ja-jp/library/cc427944.aspx 標準C++の正規表現: <regex> http://codezine.jp/article/detail/7716 記事の中では、PerlやRubyの前に、正規表現を使う、Unix ツールのGrep, Sed そこから独立した、AWKがあります。

moo_a3123
質問者

補足

回答、ありがとうございました。 >ただ、ご質問の意図が分からないのですが すみません。知りたかったのは、どうして、* や $ や ^ だのを使うのがどうして、regular なのかということでした。

noname#195146
noname#195146
回答No.1

 逆です。英語にregular expressionという用語があって、それを「正規表現」と専門用語化して訳すようになったのです。なお、そのregular expression自体も、特に意図があるわけではないようです。何となくそう命名したくらいなところ。

関連するQ&A