0
[[:punct:]]は、レールモデルテストで呼び出されたときに句読点と一致しません。次のコードを使用します。[[:punct:]]はirbとrailsのテストで異なって一致します。
test "punctuation matched by [[:punct:]]" do
punct_match = /\A[[:punct:]]+\Z/.match('[\]\[!"#$%&\'()*+,./:;<=>[email protected]\^_`{|}~-]')
puts punct_match
puts punct_match.class
end
これは、印刷できない文字とNilClassを出力します。私はIRB正しく一致し、出力
[\]\[!"#$%&'()*+,./:;<=>[email protected]\^_`{|}~-]
=> nil
で同じ文
punct_match = /\A[[:punct:]]+\Z/.match('[\]\[!"#$%&\'()*+,./:;<=>[email protected]\^_`{|}~-]')
を実行した場合
しかし、私は何をしないのですか?
Rubyのバージョン=> 2.2.4、 Railsのバージョン=> 4.2.6
*あなたはIRBに入力している正確に何を*? –
入力:punct_match =/\A[[:punct:]]+\Z/.match('[\]\[!"#$%&\()*+,// :; <=>?@ \^#?@ \\^_' {|}〜 - "" –
MRI v2.2.4を使用していますか?私はこれを試し、マッチを得なかった。再現できません。 –