답변:
gsub에서 사용할 필요가 "\n"없습니다 '\n'. 다른 따옴표는 다르게 작동합니다.
큰 따옴표 "는 문자 확장 및 표현식 보간을 허용합니다. 이스케이프 된 제어 문자를 사용하여 \n실제 값 (이 경우에는 newline )을 사용할 수 있도록하고 #{expression}변수를 사용할 수 있도록 허용 하고 텍스트에 원하는 거의 모든 루비 표현식을 사용할 수 있습니다.
반면에 작은 따옴표 '는 문자열을 문자 그대로 취급하므로 확장, 대체, 보간 또는 무엇을 가지고 있는지가 없습니다.
이 특별한 경우에는 .delete또는 .trString 메서드를 사용하여 개행 문자 를 삭제하는 것이 좋습니다.
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