はじめての正規表現に参加してきました。自己流過ぎてぐだぐだだったため正規表現の基礎から聞いてみたかったのと、「どんな組み立てで正規表現を教えるのか」に興味があって。ここでは後者中心にレポします。
はじめての
はじめての、の講座名の通り、言葉から。特に「マッチ」についてきちんとした説明は初めて聞いたように思います。最初に入ったメタ文字は 「 [ ] 」、文字クラス。なにげにDTPerの使用頻度の高い、
[0-9][a-z]
から(後で\dも紹介してます)。これでメタ文字とリテラルの違いを染みこむまでやってから、+や?を説明。派手な「.」や「*」の扱いが比較的小さかったのも、最後まで聞くと納得です。
途中から実況じみたことしてたので貼り。
[blackbirdpie id=”94999110641397760″]
[blackbirdpie id=”95012739231125504″]
[blackbirdpie id=”95015791233216512″]
置換は派手だけど、まずマッチさせられなきゃ意味がない。置換に行くまでに本当に丁寧に丁寧に「マッチ」を教えてもらえました。正規表現使うとこんなことができる!…ではなく、「正規表現とは」をはじめての人が分かるような講義に組み立てていて、教えるってのはこういうことなんだなぁと洗われた気分。
実際自分の職務で使うには、「こんなこともできる、あんなこともできる」という紹介ではなく、どう組み立てていったらいいのかを孤独に考えなければいけません。紹介されたものが抱えている問題にフィットしないと、心に響かないし、凄いねぇ、で終わってしまいそうな気がします。
もちろん、こんなものがあるよ、と知ってもらうのにはイイきっかけです。が、知りたいと思っている人には違うメニューになってしまうんでしょうね。
ところで
初めて正規表現に触れたきっかけは何でした?
私は表計算アプリを上手く使えずキー!っとなって、CSVにした個人的な住所録をMacPerl+正規表現で整形しようと、なぜか思って楽しく悪戦苦闘したのが始まりです。若気の至りと言うやつです。実に不思議なことをしていますね。
正規表現も、その時ハッと気づくまで理解できなかったことがたくさんあるはずなんですよ。ところが少しでも囓ってると、何が分からなかったのか何でつまづいていたのかを綺麗さっぱり忘れているんですね。
「マッチ」にしてもそうです。マッチした、という言葉の意味が分からない。ビジュアル的に納得できない。訳が分からないままに試行錯誤して、やっとなんとなく納得して「マッチ」という言葉を使っている…
自分で孤独にやるしかない、歩いて行ってもらうしかないとなれば、歩き方をまず知りたいと思いますよね。
そう思った人が、歩いて行く体力をつけられる、よい講座だと思いました。
10月にステップアップ編が、あとひょっとしたら大阪出張?もあるかもしれません。
孤独に悩んでいる、正規表現を知りたいと思う人にお勧めの講座です。
で…この本を薦めると分厚いし高いしで変な顔されるんですが、後半の言語別の細かい話はすっ飛ばしていいんで、前半の、正規表現エンジンが正規表現をどういう風に解釈していくのかを一読、お勧めしています。
正規表現君が、カーソル立てて一歩一歩解釈&仕事して行く様をまるで小説のように解説しています。どきどきわくわくです。変なリファレンスブックよりも絶対身になりますよ。
2011/07/25
そうそう、この講座、受講生に課題がついてきます。設問をクリアする正規表現を書くもので添削付き。あと1ヶ月ちょいの無料サポートも(^^;
課題付き講座、添削までつけると主催者側は大変だろうと思いますが、増えるといいですね。
2011/07/26
課題が添削されて戻って来ました。単純にマルバツだけでなくツボをおさえたひとこと付きで。いやはや大変だなぁ(^^;;
これは大阪でもやるべきですよ、うん。人数増えたら厳しいだろうけど…
お褒めいただき恐縮です。
正規表現は積み上げ式に学ばなければならないので,三時間の講義の最初の一時間でつまずくと,あとの二時間がチンプンカンプンということになりかねず,組み立てを考えるのはとても難しいです。文字クラスから入るのがいいかどうかはかなり迷いましたし,現状がベストとは思っていませんが,まあまあなのかな。
理解でコケる箇所というのはコケる原因がちゃんとあることが多いので,そのような原因を見出して,カバーするように教えたいです。
自分がコケたときのことを思い出したり,受講生の方の質問などからコケる原因を探っていきます。
でもまだまだですね〜
ところで,「マッチ」という言葉は現実にはいろいろな意味で使われています。これがまた初学者の理解の妨げになっているんですよね。この講座では,最も狭い,本来の意味に限定して使っています。
組み立てが練られてるなぁと思ってました。
また初級編やるときは教えて下さい(^^)