문자열의 단어 바꾸기 - 루비
루비에 문자열이 있습니다.
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"
루비에서 자바스크립트와 같은 다른 언어들과는 달리 단어 경계는 UTF-8과 호환되므로 라틴 문자가 아닌 언어나 확장된 라틴 문자가 있는 언어에 사용할 수 있습니다.
'сіль у кисіль, для весіль'.gsub(/\bсіль\b/, 'цукор')
=> "цукор у кисіль, для весіль"
다음 방법을 사용할 수 있습니다.
sentence ["Robert"] = "Roger"
그러면 문장은 다음과 같이 됩니다.
sentence = "My name is Roger" # Robert is replaced with Roger
첫째, 루비에서 유형을 선언하지 않으므로 첫 번째 유형이 필요하지 않습니다.string
.
문자열에서 단어를 바꾸려면 다음을 수행합니다.sentence.gsub(/match/, "replacement")
.
언급URL : https://stackoverflow.com/questions/8381499/replace-words-in-a-string-ruby
'programing' 카테고리의 다른 글
몽구스JS - 최대값을 가진 요소를 찾는 방법은 무엇입니까? (0) | 2023.06.19 |
---|---|
원시 KNEX 문을 사용하여 MariaDB에서 데이터 추출 (0) | 2023.06.19 |
투영이 db.collection에서 작동하지 않습니다.몽고에서 발견하다 (0) | 2023.06.19 |
IPython 노트북을 명령줄을 통해 파이썬 파일로 변환하려면 어떻게 해야 합니까? (0) | 2023.06.19 |
Git가 새 하위 모듈을 시작/동기화/업데이트하지 않음 (0) | 2023.06.19 |