4
私はルビーの正規表現の学習を始めました。そこに私は1つの問題があった。問題は以下の正規表現が期待どおりに動作しないことです。例えばなぜこの正規表現がルビで真になるのですか?
/^[\s]*$/ -- This will match only if the input contains white spaces or the input contains empty.
、
str = "
abc
"
if str =~ /^[\s]*$/
puts "Condition is true"
else
puts "Condition is false"
end
私の期待は意志が偽なる。この状態です。しかしそれは事実になる。どうしてか分かりません ?
sedまたはgrepでは、期待どおりに動作します。しかし、それがルビーではうまくいかない理由。
と苛立ちの実際のソースを実際の問題ではなく、\のS' 'の' [\ s]は 'です。 – cremno
@cremno: '[\ s *]'はどこにありますか?私はポストの歴史をチェックしました、OPはそのパターンを持っていませんでした。何か他のことを説明する必要がある場合、またはすべてが明白である場合はお知らせください。 –
ちょうどタイプミス。 grepとsedは行ベースです。 '^'/'$'はRubyと同じように動作します。しかしgrepの '[\ s]'はRubyの '[\\ s]'と同じです。 – cremno