답변:
tr
단일 문자를 바꾸고 자 할 때 사용하십시오 .
tr
정규 표현식을 통하지 않고 단일 문자 와 일치 하므로 문자는 첫 번째 문자열 인수에서 동일한 순서로 나타날 필요가 없습니다. 문자가 발견되면 두 번째 문자열 인수에서 동일한 색인에있는 문자로 대체됩니다.
'abcde'.tr('bda', '123')
#=> "31c2e"
'abcde'.tr('bcd', '123')
#=> "a123e"
사용 gsub
정규 표현식을 사용 할 때 또는 더 긴 문자열을 교체 할 때 :
'abcde'.gsub(/bda/, '123')
#=> "abcde"
'abcde'.gsub(/b.d/, '123')
#=> "a123e"
tr
은 "문자 번역"에서와 같이 "번역"을 의미합니다. 그것은 같은 이름의 유닉스 유틸리티의 이름을 따서 명명되었습니다 (명백하고 짧은 이름으로 잘 알려져 있음).
tr
단일 문자를 단일 고정 문자로만 대체 할 수 있지만 (단일 tr
호출 에 이러한 종류의 여러 일치 항목을 넣을 수는 있지만) 빠릅니다.gsub
정규 표현식을 사용하여 복잡한 패턴을 일치시키고 복잡한 계산 결과로 대체 할 수 있지만보다 느립니다 tr
.tr
보다 몇 배 빠릅니다 gsub
. 여기에 얼마나 빨리에 벤치 마크 tr
보다 수는 gsub
. github.com/JuanitoFatas/fast-ruby/blob/master/code/string/…
tr
str
의 문자가에서 from_str
의 해당 문자로 교체 된 사본을 반환합니다 to_str
. 경우 to_str
보다 짧은 from_str
, 그것은 대응 관계를 유지하기 위해 마지막 문자로 채워집니다.
http://apidock.com/ruby/String/tr
gsub
str
두 번째 인수로 대체 된 모든 패턴이 있는 사본을 리턴합니다 . 패턴은 일반적으로 Regexp입니다. 문자열로 주어지면, 포함 된 정규 표현식 메타 문자는 문자 그대로 해석 \d
됩니다 . 예를 들어 d
숫자 대신 백래시와 일치합니다 .
http://apidock.com/ruby/String/gsub