chuỗi đơn trích dẫn không xử lý hầu hết các trình tự thoát. Vì vậy, khi bạn có số điện thoại này
'\n'
nghĩa đen là "hai ký tự, ký tự đầu tiên là dấu gạch chéo ngược và ký tự thứ hai là chữ thường 'n'". Nó không phải có nghĩa là "ký tự dòng mới". Để cho \n
có nghĩa là newline char, bạn phải đặt nó bên trong chuỗi được trích dẫn kép (chuỗi này xử lý chuỗi thoát này). Dưới đây là một vài ví dụ:
"Remove \n".delete('\n') # => "Remove \n" # doesn't match
'Remove \n'.delete('\n') # => "Remove \\" # see below
'Remove \n'.delete("\n") # => "Remove \\n" # no newline in source string
"Remove \n".delete("\n") # => "Remove " # properly removed
LƯU Ý rằng nhân vật xuyệc ngược trong ví dụ cụ thể này (dòng thứ hai, sử dụng đơn trích dẫn chuỗi trong delete
cuộc gọi) chỉ đơn giản là bỏ qua, bởi vì logic đặc biệt trong phương pháp delete
. Xem tài liệu trên String#count để biết thêm thông tin. Để bỏ qua điều này, hãy sử dụng gsub
, ví dụ:
'Remove \n'.gsub('\n', '') # => "Remove "
Nguồn
2013-06-16 10:29:51
Cảm ơn Sergio. Có lẽ bạn biết làm thế nào tôi có thể chuyển đổi kết quả nhận được từ cơ sở dữ liệu, bởi vì tôi nghĩ rằng chúng được kéo như trong dấu nháy đơn – Gediminas
Có lẽ tôi biết. Nhưng đó là phạm vi ở đây :) –