作者: Bunta
日時: 2005/1/29(00:03)
Re: Perl6 の正規表現

 Bruce.  さん、すいません。レスをあげたつもりでいました。1週間前くらい
に書いたものを下につけます。

 その前に。

>日本ではプライドは捨てるものですが、欧米ではプライドは飲み込むもの
>なのだそうですね。

 そうですね、この感覚はかなり理解し、当たり前にするには時間がかかると思
います。たとえば日常的には"I'm proud of you, my son"なんて言う。息子を前
にしてでなくても、他人に"I'm proud of my son."なんて平気でいう。これ、ど
う訳したら普通の日本語になるだろう、と思う。開けっぴろげに「プライド」を
語っている。プライドをもつのはいけないことではないみたいだ。

 ただ、端的にいって、prideは、キリスト教圏ではいけないものなんです。 ど
っちかといえば、やはり表に出してはいけないもの。どうしたって中にあるのだ
けど、諸悪の根源になりうるから外には出さないのが無難なしろもの。というわ
けで、"swallow one's pride"ってわけなんでしょう。

#で、深くない意味はなんでしょう?

参考:

Pride goes before destruction [a fall].
Pride will have a fall.
おごれる者は久しからずや。
(もともとは平家物語だって。きゃお、知らなかった。英語のほうは聖書です。)

---------------------------------

 Bruce.さん、perl6関係情報ありがとうございました。regexと呼ばずに「ルー
ル」って呼ばれることになるのですか? もうperl独走態勢で、「正規表現」と
いう名前ではまぎらわしい、ってことですかね。
 それにしても、色々ある…。正規表現とはこうあるべし、とほかのツールも俺
に真似よ、とは言えないくらいな拡張、という意図なのかな。(でも、まだまだ
いいや、とか。)

 で、 ちょっと緊張させてしまったのかもしれないonigsedですが、いえいえ、
僕の何が間違っているのでしょう? という質問のつもりでした。で、分かりま
した。

 BREとEREって、色々違いますねぇ。問題箇所だけを書くと、以下が正解
で、

s/^★([0-9]+)(.*)$/ (\1)/

 これを、

s/^★\([0-9]+\)\(.*\)$/ (\1)/

 なんてしてたのです。前後があったものですから、ここを特定するのに…。え?
どこがいけないの、と泣いていたわけです。 (最初は、>onigsed -rの-rも忘
れてたし…。)でも、キャプチャリング、グループ化、というのは昔からどうも
頭の中がすっきりしない課題でして…。 でも、後方参照のための、( )。うう。
それは、\(, \)でしょう、という先入観があり…。

 ほんとのBREなら、

s/^★\([0-9][0-9]*\)\(.*\)$/ (\1)/

 ですね(serow版は、'+'は通してくれるので)。[0-9] は、最初、しっかり\d
と書いていたりしました。 どっちも通らない! onigsedネイティブになりたい
のだけど。でも、ドコモバも捨てがたく、低スキルなのに、16ビットと32ビ
ットの二足わらじなんで高尚なことをしようとするから、もう大変。


 閑話休題。っていうか。ちょっとした歴史的な(!)質問なのですが、キャプ
チャリングとグループ化って、元々別物だったんですよね、なんて言うか、発想
として。それがperlあたりの登場から、一度同じ記号()で表わされるようになり、
そして、今や、概念として別なのだから、キャプチャーなしのグループというの
が誕生する、なんて思っているのですが、なんか根本的に勘違いしてますよでし
ょうか? あ、gawkマルチバイトとか、色々と忙しいでしょうから、お暇なとき
にでもお教え頂ければ嬉しいな、というだけです。