goo blog サービス終了のお知らせ 

日々のDraft

回答原案集

教えてgoo Q7071941

2011-10-14 23:36:05 | 教えてgoo - 俺の、正規表現に対する憎悪

http://oshiete.goo.ne.jp/qa/7071941.html

ワイルドカードも正規表現も嫌いだ。よく考えずに使われるから。PHPやVBへの憎悪と似ている気がする。

書いてみたいのは、Splitっぽい処理をSQLで実現する - ITは芸術だのような文字列一致だけを考ればいいようなコード。インジェクションを怖がる必要がぐっと減るんじゃないかなって。

エンドユーザーからみて不自然な制約や仕様を作りたくないという思いも自分の中ではかなり強そうだ。


愚痴

2011-10-10 22:12:01 | 教えてgoo - 俺の、正規表現に対する憎悪

http://d.hatena.ne.jp/JunichiIto/20110805/1312497604

イヤ。嫌い。「文字列リテラル含め各種リテラルやコメントの一部など、本来変更すべき部分以外に"row."が出現しないことが仕様上保証されている」もしくは「自分だけが使うやっつけ的なコードであることを承知の上で実行し、コード実行後にちゃんと目視確認する」が条件として必要。


教えてgoo Q6417152

2010-12-31 05:47:45 | 教えてgoo - 俺の、正規表現に対する憎悪

http://oshiete.goo.ne.jp/qa/6417152.html

本題はひとまず置いておく

やはり、俺は文字列操作が嫌いなのだろう。多分何か見落としたりすると思っている。まぁもちろん例外としてライブラリ製作者が使うものを除くが。(卵が先か、鶏が先か)

だから、XMLの時は正規表現を嫌い、DOMを使いたがり、そしてファイルパスを取り扱う本問も正規表現を使うことに抵抗を感じている。

で、http://ideone.com/idwcyと書くわけだ。ルートは必ず"/"で表されるかに自信がもてない。

ドキュメントそのものにはまだ記述されていないものの、getFilenameメソッドはディレクトリの時にはディレクトリ名返す、って記述したほうがいいんじゃね?というコメントがある。公式ではないがとりあえずこれを採用している。

スラッシュじゃなくてバックスラッシュではうまくいかなかった。

Windows XPで実行したらもっとダメだった。getFileInfoで親を差してくれない(泣)

タチの悪いことに、basename関数だかなんだかは「実際にそのファイルやフォルダが存在しない場合には警告される」のだ。System.IO.Pathみたいに無視して欲しいのだが。

途中で.や..があったときの扱いはどーすんだ、俺

以下、関係ない余談。どうあるべきなんだろうと思ったことがあった。

  • 環境によってファイル名の符号化方式が違うらしい
  • 環境によっては各ファイルの符号化方式がバラバラ、ということもあるらしい
  • PHPの関数は、binary string(いわゆるbyte[])をそのまま返す。
  • 個人的な希望は常に文字列はUTF-8とかUTF-16とかで扱って欲しい。PHP6はこの方針だったので、ファイル名の符号化方式を設定ファイルで指定できるようになるはずだった。
  • 本来はbyte配列で受け取るべきで、JavaやC#のように統一された形で欲しいと思うのは「本来あるべき書き方(言語・宗教によって違うと思うが)」に背く傲慢さでしかないのだろうか…

教えてgoo Q6390347

2010-12-17 15:27:22 | 教えてgoo - 俺の、正規表現に対する憎悪

http://oshiete.goo.ne.jp/qa/6390347.html

それは正規表現でやるべきなんですかね、といういつものツッコミはもう疲れた。さておき、http://ideone.com/m3jXtで自分なりのコードを実行してみてずっこけた。これはideone.com依存の症状(ファイルとか作れないし、ネットワークとかにアクセスできないようになっている)か、Linux依存の話か?とりあえずWindows XPで手元で実行した限りでは期待通りyyyが出力されているのだけれど。