文字列を 3 つの連続する改行 ( ) で分割しようとしています"\n\n\n"
。やってみstr.split('\n\n\n')
てうまくいかなかったのですが、に変えたら動くようstr.split("\n\n\n")
になりました。なぜそのような行動が起こるのか、誰かが私に説明できますか?
質問する
706 次
3 に答える
8
一重引用符で囲まれた文字列は生の文字列です。3 つのバックスラッシュ'\n\n\n'
と 3 つn
の も同様です。期待どおりの 3 つの改行ではありません。正しくエスケープできるのは二重引用符文字列のみです。
puts 'abc\nabc' # => abc\nabc
puts "abc\nabc" # => abc
# abc
于 2012-12-28T02:50:16.717 に答える
5
一重引用符で囲まれた文字列には、実際の/リテラルの内容があります。
1.9.3-p194 :003 > puts 'Hi\nThere'
Hi\nThere
=> nil
一方、二重引用符で囲まれた文字列は特殊文字 (\n) を「補間」し、改行を行います。
1.9.3-p194 :004 > puts "Hi\nThere"
Hi
There
=> nil
1.9.3-p194 :005 >
ベスト プラクティスの推奨事項:
- 可能であれば、二重引用符よりも一重引用符を選択してください (補間のために必要に応じて二重引用符を使用してください)。
- 「どこかの "quotes" 内の引用符」をネストするときは、二重引用符を単一引用符の中に入れます
于 2012-12-28T02:58:03.333 に答える
0
一重引用符で囲まれた文字列リテラルでは、バックスラッシュを二重にする必要はありません
'\n' == '\\n'
于 2012-12-28T02:53:53.300 に答える