久しぶりの勉強会
感想
日常生活に戻っていきなりの勉強会でした。
かなり準備不足で、説明がちぐはぐなのがいけなかった。
たとえば、「微分」の説明とかは、自分の中にすでにストーリーができていて、
わき道もはっきり見えるから、すらすらとできるんだけど、
正規表現は、メインストリートがぼんやりと見えるぐらいだから、
説明にまとまりがないんだろう。
id:kiwanamiさんの出す問題は激しく面白かった。
みんなでわいわいやりながら解くのはとても楽しいし、
充実していた気がする。
で、正規表現がどうゆうふうに実装されているかきいたら、オライリーの本を読めと。
ぱらぱらと見たけれど、面白そう。
世の中に面白そうな本があふれていて困る。
ポイント
- 正規表現のルールを実際に問題を解いて、身につける。
- 正規表現の役割は、入力チェック, マッチする文字列の抜き出し
- 正規表現だけでがんばらない
- 正規表現で大まかに絞り込む
- プログラムではじく
- templateを作って、わかりやすいプログラムを作ろう。
- 長い文章で、複数の文字列を書き換えるときとか
- "私の名前は$name$です。私の出身地は、$place$です。"のように、置き換える文字列を適当な記号を作ってあらわして、replaceを使って書き換える。
var text = "私の名前は$name$です。私の出身地は、$place$です。"
text = text.replace(/\$name\$/,"koplec").replace(/\$place\$/,"japan")
問題
郵便番号にマッチする正規表現(たとえば、810-0001)
日付マッチ問題
- 基本:以下の日付表記にマッチする
- 20001112
- 2008-6-10
- 2008-12-1
- 1995/5/13
- 応用:以下の日付表記にはマッチしない。
- 1234/13/0, 2222/4/52のようなありえない日付
- さらに応用:2004/2/30みたいな日付
メールアドレスにマッチする正規表現
本気だと、50行ぐらいになるらしい。。。
"/home/koplec/temp/aaa.tar.gz"のようなファイルのパスに対し、
朝日新聞の文章を可愛くする。
文章の句読点の"。"を"にゃん。"にするjavascriptコードを書く。
3桁区切り問題
12345678 -> 12,345,678のように与えられた数字列を3桁ずつに区切るにはどうすればよいか?