DelFusa Blog 総本山

プログラミングの話題とかです。

NEW | PAGE-SELECT | NEXT

≫ EDIT

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

| スポンサー広告 | --:-- | comments(-) | trackbacks(-) | TOP↑

≫ EDIT

正規表現に関して、学ぶ前に知っておく事。


|,,∧   ヤサグレル
|Д゚彡   コトバカリ
|⊂ミ
| ミ    
|''U


前から正規表現はほどほどに使えていましたが、あまり好きにはなれませんでした。
前回前々回とEmEditorのアウトライン設定を行うために更に正規表現を学びましたが
やっぱり好きじゃないです。



このようなリンク先を紹介しておきます。

正規表現に関してプログラマーが覚えておくべき最低限のコト - The absolute bare minimum every programmer should know about regular expressions - いろいろ解析日記
http://d.hatena.ne.jp/nattou_curry_2/20090607/1244384102



> 正規表現とは、テキストの表現や解析を行うために、特別なパターン表記法を使って書いた文字列です。
> 多くのプログラマーは(一部の優秀なプログラマーでさえ)、正規表現を不愉快なモノと考えて無視しています。
> 正規表現が役に立つ場面はとても多いので、これは非常に残念なことです。
> 一度、正規表現の扱い方を覚えてしまえば、現実世界の無数の問題の解決に使えます。

とあります。

記事の方の思いとは裏腹に、私は正規表現を不愉快なモノとして基本、無視していこうと思います。

「無数の問題解決に使える。」とありますが、問題解決に近づくのはいいけど
やっぱり近づいただけで、解決できない。
先を追い求めてもがっかりするだけ。という結果に見舞われる事が何度もありました。


できそうで、できなさそうで、やっぱりできないという不完全言語。それが正規表現。
そんな感じがします。

こちらのページを見るとその一例がもう一つ見えてきます。

404 Blog Not Found:「PHP使いはもう正規表現をblogに書くな」と言わせないでくれ
http://blog.livedoor.jp/dankogai/archives/51189905.html

> 正規表現って、プログラミング言語間の差が少ないサブ言語なのに、
> なぜ「PHP」がつくとダメ正規表現ばかり登場するのか。うんざりだ。

> メールアドレスの正規表現が一筋縄では行かないことは、ちょっとぐぐればすぐに出てくるし、
> しかも正規表現でマッチできるのはたかだかnobody@example.com、すなわちaddr-specまでで、
> From: Anonymous 、すなわちmailboxを正規表現でマッチするのは
> 不可能なのはもう10年以上前から知られている
> (Perl 5.6以降の拡張正規表現であれば可能だが、それだともう狭義の正規表現からは逸脱してしまう)。

・・・メールアドレス抽出も出来ないのか・・・

こちらのページの方は、正規表現を否定してはいないみたいですが、
やっぱりね。という感じがします。

PHP使いじゃなくても、プログラマには、「正規表現をblogに書くな」というか「正規表現をあまり使うな」
と思います。
(といいつつ、書かざる負えないから、アウトライン設定のために正規表現を書くわけですが)

だって、プログラミング上では、ロジックを自分で書くことによって、
正規表現を適応しなきゃならない場面があまりないんですよ。
エディタの検索や置き換え処理として、ユーザーに正規表現設定を公開でもしないかぎり。

本来はプログラム上でもっとまともな実装は出来るはずです。

EmEditorのDelphi構文解析だって、
人間が考えれば普通にもっと簡単なロジックで実現出来そうなことを、どうしてあそこまで複雑な正規表現にしなければならないかと、嘆かわしく思います。


他にも普通のプログラムでは普通に出来ている事を、正規表現ではやっぱり出来ないという追加の実例です。

正規表現でソースコードのコメントを削除したり残したりしたい|freeml
http://www.freeml.com/delphi-users/1475



人は時として、

難解でけったいな、理解しにくい物を
自分が理解できた事に満足して、正規表現すばらしい、みたいになることがあります。

でも、
難解でけったいな、理解しにくいモノを、
理解した上でも、正規表現は使い勝手がイマイチで、不愉快なものです。


そもそも、あれを「言語」だととらえると、著しく可読性が落ちます。

自分が書いたものでも、再度読みこなす事も難しく
構造化もできず、ソースを再利用して拡張していくことも出来ない。

…いい点が全然みつかりません。

もう少しましなスクリプト言語とか、そういうものを誰か開発したりしないのでしょうかね。



今日のブログタイトルは
「正規表現に関して、学ぶ前に知っておく事。」です。

つまり、学ぶ必要なんてほとんどねーよ。って事を知った上で
超特殊用途で必要な場面があれば、学び使えばいいと思います。
スポンサーサイト

| 未分類 | 12:55 | comments:1 | trackbacks(-) | TOP↑

COMMENT

ひさしぶりにちゃんねるを見たら、驚きました!

「失望した!」的なコメントに驚きました。



『まだ、俺に失望してなかったんだ!』ということに驚いたんですよ。
ちょっと燃料投下になっていたようですね。


未だに例外について必死になっているって...もうホントに...

┐ミ´д`彡┌  ヤレヤーレ


例外処理については Joel On Software に書かれていることからの派生なんだが、Joel にずっとついていけなくても損するのは俺じゃないから、いいんだけどね...


正規表現も...もうホントに、モマエは正規表現を使って何か処理をやらせようとがっつりやった事があるのかと、小一時間...

がっつりやった上で限界があるちう事を示しておるのがわからんのかと...

いやですわね根拠のない方の根拠のない噂って。オホホホ。

| ミ・д・彡 | 2011/12/03 00:19 | URL | ≫ EDIT















非公開コメント

PREV | PAGE-SELECT | NEXT

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。