From: Akira Matsuda Date: 2010-10-22T19:55:59+09:00 Subject: [ruby-dev:42445] 正規表現に半角スペースが混じっている際の挙動 松田といいます。 正規表現で半角スペース記号が混じる場合に以下のような挙動になっているのですが、 なんだか微妙に一貫性がないように感じます。 # 1.9.3dev (2010-10-22 trunk 29555) % ruby -e "'hoge'.scan / /" -e:1: unterminated regexp meets end of file # 1.8.7 (2010-08-16 patchlevel 302) % ruby187 -e "'hoge'.scan / /" -e:1: unterminated string meets end of file -e:1: syntax error, unexpected tSTRING_END, expecting tSTRING_CONTENT or tREGEXP_END or tSTRING_DBEG or tSTRING_DVAR # カッコを付ければエラーにならない % ruby -e "'hoge'.scan(/ /)" #=> OK # エスケープすればエラーにならない % ruby -e "'hoge'.scan /\ */" #=> OK # 米が混ざるとこんな感じ % ruby -e "'hoge'.scan / */" -e:1: syntax error, unexpected tSTAR 'hoge'.scan / */ ^ -e:1: unterminated regexp meets end of file -e:1: syntax error, unexpected $end, expecting tCOLON2 or '[' or '.' もしかして、基本的にはスペース記号はエスケープしておくのが正しいんでしょうか? -- Akira Matsuda