반응형
문자열에서 단어 바꾸기-Ruby
루비에 문자열이 있습니다.
sentence = "My name is Robert"
복잡한 코드 나 루프를 사용하지 않고이 문장에서 한 단어를 쉽게 바꿀 수있는 방법은 무엇입니까?
sentence.sub! 'Robert', 'Joe'
대체 된 단어가 문장에없는 경우 예외가 발생하지 않습니다 ( []=
변형).
모든 인스턴스를 교체하는 방법?
위의 "Robert"의 첫 번째 인스턴스 만 대체합니다.
모든 인스턴스를 바꾸려면 gsub
/ 를 사용하십시오 gsub!
(예 : "전역 대체").
sentence.gsub! 'Robert', 'Joe'
위의 내용은 Robert의 모든 인스턴스를 Joe로 바꿉니다.
자연어 텍스트를 다루고 문자열의 일부가 아닌 단어를 대체해야하는 경우 일반 텍스트 대체로 인해 비참한 결과가 발생할 수 있으므로 gsub에 정규 표현식을 조금씩 추가해야합니다.
'mislocated cat, vindicating'.gsub('cat', 'dog')
=> "mislodoged dog, vindidoging"
정규식에는 단어의 \b
시작 또는 끝과 일치하는 단어 경계가 있습니다 . 그러므로,
'mislocated cat, vindicating'.gsub(/\bcat\b/, 'dog')
=> "mislocated dog, vindicating"
Ruby에서 Javascript와 같은 다른 언어와 달리 단어 경계는 UTF-8과 호환되므로 라틴 이외 또는 확장 라틴 알파벳이있는 언어에 사용할 수 있습니다.
'сіль у кисіль, для весіль'.gsub(/\bсіль\b/, 'цукор')
=> "цукор у кисіль, для весіль"
이 방법으로 시도해 볼 수 있습니다.
sentence ["Robert"] = "Roger"
그러면 문장이됩니다 :
sentence = "My name is Roger" # Robert is replaced with Roger
먼저 Ruby에서 유형을 선언하지 않으므로 첫 번째가 필요하지 않습니다 string
.
문자열에서 단어를 바꾸려면 다음을 수행하십시오 sentence.gsub(/match/, "replacement")
.
참고 URL : https://stackoverflow.com/questions/8381499/replace-words-in-a-string-ruby
반응형
'IT' 카테고리의 다른 글
ASP.NET MVC에서 현재 사용자를 얻는 방법 (0) | 2020.03.29 |
---|---|
의사 요소의 누적 순서를 부모 요소 아래에 설정할 수 있습니까? (0) | 2020.03.29 |
django에서 사용자 IP 주소를 어떻게 얻습니까? (0) | 2020.03.29 |
구문 오류 : 함수가 '£'를 반환 할 때 파일에 ASCII가 아닌 문자 '\ xa3' (0) | 2020.03.29 |
#if RELEASE가 ## DEBUG가 C #에서하는 것처럼 작동합니까? (0) | 2020.03.29 |