답변:
gsub에서 사용할 필요가 "\n"
없습니다 '\n'
. 다른 따옴표는 다르게 작동합니다.
큰 따옴표 "
는 문자 확장 및 표현식 보간을 허용합니다. 이스케이프 된 제어 문자를 사용하여 \n
실제 값 (이 경우에는 newline )을 사용할 수 있도록하고 #{expression}
변수를 사용할 수 있도록 허용 하고 텍스트에 원하는 거의 모든 루비 표현식을 사용할 수 있습니다.
반면에 작은 따옴표 '
는 문자열을 문자 그대로 취급하므로 확장, 대체, 보간 또는 무엇을 가지고 있는지가 없습니다.
이 특별한 경우에는 .delete
또는 .tr
String 메서드를 사용하여 개행 문자 를 삭제하는 것이 좋습니다.
tr
이 작업에 더 나은 선택 이라고 생각 하지만 제가 말했듯이 대답 할 때 작은 따옴표와 큰 따옴표의 차이점을 지적하는 것이 더 낫다고 생각했습니다.
문자열을 교체하는 대신 제거하려는 경우 사용할 수 있습니다 String#delete
(또는 그에 상응하는 mutator String#delete!
). 예 :
x = "foo\nfoo"
x.delete!("\n")
x
이제 "foofoo"와 같습니다.
이 특정 경우 에는 실제로 문자열을 아무것도 바꾸지 않기 때문에 String#delete
더 읽기 gsub
쉽습니다.
delete
여기에 표시된 것처럼 파괴적이지 않습니다. 새 문자열을 반환합니다.
문자열에서 모든 선행 및 후행 공백을 제거하고 싶지 않거나 마음에 들지 않으면 strip
메서드를 사용할 수 있습니다 .
" hello ".strip #=> "hello"
"\tgoodbye\r\n".strip #=> "goodbye"
여기에 언급 된대로 .
편집 이 질문의 원래 제목이 달랐습니다. 내 대답은 원래 질문에 대한 것입니다.
strip
선행 및 후행 공백 만 제거 : ruby-doc.org/core-1.9.3/String.html#method-i-strip-21
이를 위해 정규식이 필요하지 않습니다. tr 사용 :
"some text\nandsomemore".tr("\n","")
replace
변수 할당과 같이 문자열을 새 문자열로 변경합니다. 반면 tr
문자 별 전역 찾기 및 바꾸기입니다.
Ruby에서 사용 chomp
또는 strip
기능 :
"abcd\n".chomp => "abcd"
"abcd\n".strip => "abcd"
strip
선행 및 후행 공백 만 제거 -ruby-doc.org/core-1.9.3/String.html#method-i-strip-21