「やっとくか〜?」と思ったけれど、やっぱり面倒だった。あはは...
厳密には正しくないけど今はまぁこれで十分な感じの正規表現
valid_chars = '[0-9A-Za-z_!#\$%&*+\-\/=\?^_{|}\~\.]+'
valid_pattern = Regexp.new("^(#{valid_chars})@(#{valid_chars})$", nil, 'n')
ところで元ネタは2002年のRubyなので、Regexp#newのパラメータが現在(Ruby 1.8とか1.9)とは異なるようだ。
元ネタではRegexpの引数が2つになっていて、第2引数は 'n' だ。
この 'n' は文字コード "none" の指定じゃないかと思われる。
Regexpのリファレンスマニュアル見ると第2引数がFixnum以外で真ならIGNORECASEになるって。
当時はオプションの指定ができなかったのだろうか?それとも単なる転記ミス?
0 件のコメント:
コメントを投稿