[ruby] Ruby 문자열에서 “\ n”문자열을 제거하려면 어떻게해야합니까?

이 문자열이 있습니다.

"some text\nandsomemore"

여기서 “\ n”을 제거해야합니다. 난 노력 했어

"some text\nandsomemore".gsub('\n','')

하지만 작동하지 않습니다. 어떻게하나요? 읽어 주셔서 감사합니다.



답변

gsub에서 사용할 필요가 "\n"없습니다 '\n'. 다른 따옴표는 다르게 작동합니다.

큰 따옴표 "는 문자 확장 및 표현식 보간을 허용합니다. 이스케이프 된 제어 문자를 사용하여 \n실제 값 (이 경우에는 newline )을 사용할 수 있도록하고 #{expression}변수를 사용할 수 있도록 허용 하고 텍스트에 원하는 거의 모든 루비 표현식을 사용할 수 있습니다.

반면에 작은 따옴표 '는 문자열을 문자 그대로 취급하므로 확장, 대체, 보간 또는 무엇을 가지고 있는지가 없습니다.

이 특별한 경우에는 .delete또는 .trString 메서드를 사용하여 개행 문자 를 삭제하는 것이 좋습니다.

자세한 정보는 여기를 참조하십시오


답변

문자열을 교체하는 대신 제거하려는 경우 사용할 수 있습니다 String#delete(또는 그에 상응하는 mutator String#delete!). 예 :

x = "foo\nfoo"
x.delete!("\n")

x 이제 “foofoo”와 같습니다.

이 특정 경우 에는 실제로 문자열을 아무것도 바꾸지 않기 때문에 String#delete더 읽기 gsub쉽습니다.


답변

문자열에서 모든 선행 및 후행 공백을 제거하고 싶지 않거나 마음에 들지 않으면 strip메서드를 사용할 수 있습니다 .

"    hello    ".strip   #=> "hello"   
"\tgoodbye\r\n".strip   #=> "goodbye"

여기에 언급 된대로 .

편집 이 질문의 원래 제목이 달랐습니다. 내 대답은 원래 질문에 대한 것입니다.


답변

이를 위해 정규식이 필요하지 않습니다. tr 사용 :

"some text\nandsomemore".tr("\n","")


답변

Ruby에서 사용 chomp또는 strip기능 :

"abcd\n".chomp => "abcd"
"abcd\n".strip => "abcd"


답변


답변