« ゲーム機の歴史 | メイン | brainscannr 英語版脳内メーカー風サイト »
2007年10月17日
phpspotの人は正規表現について語らないほうがいいのでは
「実用的なPHP用の正規表現x8」というphpspot開発日誌という記事で、
8 Practical PHP Regular Expressions - Web devlopment blogという、今日del.icio.us/popularに出ていた記事の紹介がされている。このサイトの記事はいつもそうだけど、はてなブックマークでも人気で、既に50名を越えるユーザにブックマークされているようだ。
1 メールアドレスチェック $string = "first.last@domain.co.uk"; if (preg_match( '/^[^0-9][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[@][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[.][a-zA-Z]{2,4}$/', $string)) { echo "example 3 successful."; }
これは、"example@so-net.ne.jp"とか"example+tracer@gmail.com"をメールアドレスではないと判定する。この簡単さだと、メールアドレスじゃないものを通してしまう取りこぼしも多いはず。
2 IPアドレス $string = "255.255.255.0"; if (preg_match( '/^(([0-2]*[0-9]+[0-9]+).([0-2]*[0-9]+[0-9]+).([0-2]*[0-9]+[0-9]+).([0-2]*[0-9]+[0-9]+))$/', $string)) { echo "example 5 successful."; }
これなどは、サンプルの"255.255.255.0"が既に動かない。どういうこと?
さらに言うと、以下のようなケースも通してくれる。
- "999999999999.255.255.10"
- "000.255.255.10"
- "11111111111.22222222222.33333333.44444444"
チェックになってない…
この人、以前にも正規表現のいいかげんな記事を書いていろいろ突っ込まれている。
メールアドレスのチェックってそんな簡単なものじゃないはず。
突っ込まれた肝心の記事は見つからなくなっている。でも依然として「PHP 正規表現」で検索すると当該のURLが上位に出てくるので影響は大きい。
これは提案なんだけど、突っ込まれたらちゃんと勉強しなおして正しい記事にするか、手に負えないと思ったらせめてより正確な記事を紹介するのがみんなのためなんじゃないかな。
Diggのトップページやdel.icio.us/popularで表示されたページの概要を訳しているだけなんだから、せめて自分で確かめてから紹介しようよ。僕も正規表現は苦手だけど、今回のはコピーして動かすだけでおかしいとわかるじゃない。(得意な人なら動かさなくてもわかりそうだが)
まあ、このエントリもphpspotメソッドで対処されそうな気もするけど。
[参考]
投稿者 秋元 : 2007年10月17日 14:40
トラックバック
このエントリーのトラックバックURL:
http://labs.cybozu.co.jp/cgi-bin/mt-admin/mt-tbp.cgi/1601
このリストは、次のエントリーを参照しています: phpspotの人は正規表現について語らないほうがいいのでは:
» [php] PHPSPOTの記事について from Por toda a minha vida
「実用的なPHP用の正規表現x8」というphpspot開発日誌という記事で、 8 Practical PHP Regular Expressions -... [続きを読む]
トラックバック時刻: 2007年10月17日 16:01
» Regexp - Regexp::Commonを引くAPI from 404 Blog Not Found
Mastering Regular Expression
Jeffrey Friedl
[邦訳: 詳説 正規表現]
そういうこと... [続きを読む]
トラックバック時刻: 2007年10月17日 17:11
» エンジニアは緊張感を持って情報発信せよ from 悪気は無いけど暴れるよ
phpspotの人は正規表現について語らないほうがいいのでは http://labs.cybozu.co.jp/blog/akky/archives/2... [続きを読む]
トラックバック時刻: 2007年10月18日 17:08
コメント
IPアドレスのはドットで区切られていなくてもマッチするというおそろしさ。
それにしても、昔からこういういい加減な記事のおかげで、誤った知識が流布する例というのは後を絶ちませんね。困ったものです。
最初に書いてしまう人がいるのも問題ですが、それ以上に翻訳したり紹介する人がちゃんと確かめてからにしてくれれば、被害は少なくて済むはずなのに。
投稿者 makotokaga : 2007年10月17日 16:20
phpspotメソッドの存在忘れていました(苦笑
あのPukiWiki forkなCMSにあるコンテンツのサンプルは残念なクオリティのものも少なくないですね
投稿者 ELF : 2007年10月17日 19:21
IPアドレスのチェックはリンクしてある原文とも違いますねえ。
何でそのままコピペしてないんでしょう。
投稿者 s : 2007年10月17日 19:50
人気のあるサイトは叩かれやすい、のが現実。まぁ影響力があるのでしょうがないですが。
たしかに、間違いが広まるのは良いことではないですが、人間誰しもが間違えるわけで、間違いは絶対広めるなということなら、誰もブログなんか書けません。
今回のように間違った情報を取捨選択するのも閲覧者側の能力の一つだと思います。そもそも情報をすべて鵜呑みにするほうが問題だと思います。
有償で配信している情報サイトなどなら別ですが、一個人の無償のサイトなんですから、もうすこし大目に見てあげてもいいんじゃないでしょうか。
phpspotメソッドが有効になるのは、閲覧者がいてこそで、管理人の責任ではないでしょう。それに日々このブログから情報を得て利益(お金じゃなく)を得ている人も多いはず。
なんか、こういうちょっとした汚点のあら探しで叩くのは好きじゃないですね。
こうやって情報の間違いを指摘していただけるのはありがたいことですけども。
投稿者 si : 2007年10月17日 21:00
あら探しと形容するほどマシではないですね。
汚点が多すぎる
投稿者 はいいろ : 2007年10月17日 21:45
> 人気のあるサイトは叩かれやすい、のが現実。まぁ影響力があるのでしょうがないですが。
そのような言い方をされてしまうと、一般のブログではますます「情報の間違いの指摘」ができなくなるように思います。
幸い、このブログもsiさんの言われるところの「人気ブログ」に入っているようなので(各種ランキングで、ですよ。自分で主張するつもりはないです)、そういう言われ方はsiさん以外にはされてないですが、もしそうでなければ、「アクセス稼ぎのために人気ブログを叩いている」とか言い出す人はいたでしょうね。
間違うな、という主張は一切してないので、そのあたりをもう一度読んでみていただけると嬉しいです。
投稿者 秋元 : 2007年10月17日 21:50
> なんか、こういうちょっとした汚点のあら探しで叩くのは好きじゃないですね。
>
> こうやって情報の間違いを指摘していただけるのはありがたいことですけども。
siさんて、phpspot開発日誌を書かれている方ですか?
投稿者 m.m : 2007年10月17日 22:35
そもそも...
phpspotメソッドなんて揶揄されるような、対話を拒絶する対応が問題なのでは...。
まずは正確に書くことが前提で、修正すべきところは修正する、なおした過程もできるだけ残す...その経緯が有用な情報になるということ、それにつきると思います。
「速くたくさん間違えて速く直す」これをオープンに対話を続けながら回転させる。発信する側もそれを受け取る側も参加する...理想ですけれど、そういう風にありたいですね。
いろいろ勉強になります。いつもありがとうございます。
投稿者 kwmr : 2007年10月17日 23:40
> なんか、こういうちょっとした汚点のあら探しで叩くのは好きじゃないですね。
これだけとんでもない間違いに対する適切な指摘を「ちょっとした汚点」の「あら探し」と言ってしまうのはどうかと思いますね。日本語は正しく使いましょう。
あちらの該当記事が訂正されていますが、それによるとPHPSPOTの人はどうやら「簡単な目視のチェックのみで動作確認を行わなかった」そうです。こんな基本的なこともできないのなら、正規表現について語らないほうがいいというよりも、プログラミングについて語らないほうがいいとおもいました。
投稿者 とおりすがりの倉庫キャラ : 2007年10月18日 06:57
PHPDeveloper.org のような寛容さが書く方にも読む方にも求められていると思いますが、問題は phpspot開発日誌にコメント機能が無いことでしょうか。それが状況を無駄に大きくしている気がします。
"Comments on the post have helped even more, finding places where they might break or not catch all possibilities."
http://www.phpdeveloper.org/news/8855
投稿者 hkitago : 2007年10月18日 20:41
私はあのサイトの恩恵を受けているので、あのくらいのミスは特に気に掛かりませんけどね。
分かる人にはあんな感じで書いててもまともな検証フロー行ってれば大体分かるし。あとから補足修正する必要もないでしょ。
そんなことよりも、あなたのような余計なおせっかいは傍から見てて非常に腹が立ちます。他人の汚点探しもいいですが、あなた自身も自分が書いた内容を本当に実践できているか見直すべきではないでしょうか?
投稿者 seamo : 2007年10月19日 00:47