- 128 名前:デフォルトの名無しさん [2007/08/13(月) 17:00:49 ]
- なんか楽しそうなお話なので、参加せてください。
「|」は遅い。 これ常識ですよ。何も、>>118 や >>121 みたいな小難しいコードを書かなくても ストップウォッチで計れば十分。否、腹時計でも十分っすよ。 あまりにも速度の差が歴然としすぎていて、今まで時計で計った事なかったなぁ・・・ 遅い根拠は、regexp のソースコード読めば分かります。 もっと言えば、自分で regexp もどきでも作ってみればわかります。 まず簡単な例・・・C言語には strstr() って関数がありますよね? 文字列Aの中から、文字列Bが含まれる位置を返す。正規表現なしの単純な機能です。 これと同じものを自分で書いてみてください。簡単に書けると思います。初歩の初歩です。 では、これを拡張して、正規表現の | が使えるようにしてみてください。 (正規表現には、他にも*とかありますが、今回はとりあえずは | だけでいいです) コードを書いてるうちに気づくはずです。「こんなメンドクサイ事するより、strstr() && strstr() でいいじゃん! 」 そうです。絶対そのほうが安くて早くてウマイんです。 ではなぜ、正規表現に | があるのか?それはですね、「1行で書きたいから」 コマンドラインから sed とか grep とか、あるいは perl のワンライナー使うときは、どうしても1行で書く必要があります。 でも、perl のスクリプトは2行でも3行でも分けて書くこともできるわけですから、| を使うメリットはあまり有りませんね。 人間止めますか、それとも|使いますか?
|

|