치환
패턴과 함께 gsub를 사용합니다
치환은(는) CoddyKit의 무료 Ruby Academy 강의입니다. 이것은 4개 중 3번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Ruby Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Ruby Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
sub로 텍스트 바꾸기
String#sub는 패턴의 first match를 대체 문자열로 바꿉니다. 원래 문자열은 변경하지 않고 새 문자열을 반환합니다.
s = 'hello world'
puts(s.sub(/world/, 'Ruby'))
puts sgsub로 모두 바꾸기
gsub는 전역 대체를 의미합니다. first match만이 아니라 모든 match를 바꿉니다.
puts('a-b-c-d'.gsub(/-/, '_'))
puts('one two two'.gsub(/two/, 'three'))대체에 사용하는 패턴
gsub의 첫 번째 인수로 전체 정규식을 전달할 수 있으므로, 고정된 텍스트 대신 유연한 패턴을 match할 수 있습니다.
puts('id42 id7 id100'.gsub(/\d+/, '#'))
puts('a1b2c3'.gsub(/[0-9]/, '*'))대체 문자열의 역참조
대체 문자열에서는 \1, \2 등을 사용하여 캡처된 그룹을 참조할 수 있습니다.
puts('2026-05-30'.gsub(/(\d{4})-(\d{2})-(\d{2})/, '\3/\2/\1'))전체 match 역참조
\0 또는 \&는 전체 match 텍스트를 가리키며, match를 감쌀 때 유용합니다.
puts('cat dog'.gsub(/\w+/, '[\0]'))gsub의 블록 형식
gsub는 블록을 받을 수 있습니다. 각 match가 블록에 전달되고, 블록의 반환값이 대체 문자열이 됩니다. 따라서 대체 문자열을 동적으로 계산할 수 있습니다.
result = 'a1 b2 c3'.gsub(/\d/) { |d| (d.to_i * 10).to_s }
puts resultmatch를 대문자로 바꾸기
블록 형식을 사용하면 변환을 쉽게 수행할 수 있습니다. 여기서는 각 단어의 첫 글자를 대문자로 바꿉니다.
title = 'the great escape'.gsub(/\w+/) { |w| w.capitalize }
puts title해시로 대체하기
두 번째 인수로 해시를 전달하면 각 match를 키로 조회하고 해당 값으로 바꿉니다. 번역 매핑에 유용합니다.
map = { 'cat' => 'kedi', 'dog' => 'kopek' }
puts('cat and dog'.gsub(/cat|dog/, map))원본을 직접 변경하는 버전
sub!와 gsub!는 문자열을 직접 변경하며, 변경 사항이 없으면 nil을 반환합니다.
s = 'hello'
s.gsub!(/l/, 'L')
puts s
puts(s.gsub!(/z/, 'x').inspect)텍스트 삭제하기
match를 삭제하려면 빈 문자열로 바꾸면 됩니다.
puts('h e l l o'.gsub(/\s/, ''))
puts('price: $42'.gsub(/[^0-9]/, ''))이름이 지정된 그룹의 역참조
(?<name>...)을 사용하여 그룹에 이름을 지정하고, 대체 문자열에서 \k<name>을 사용하여 해당 그룹을 참조할 수 있습니다.
out = 'John Smith'.gsub(/(?<first>\w+) (?<last>\w+)/, '\k<last>, \k<first>')
puts out빠른 확인
sub와 gsub의 차이점은 무엇입니까?
복습: 대체
패턴을 사용하여 문자열을 변환하는 방법을 배웠습니다:
sub는 first match를,gsub는 모든 match를 바꿉니다.- 대체 문자열에서 사용하는 역참조
\1,\& - 블록 형식은 대체 문자열을 동적으로 계산합니다.
- 해시 인수는 match를 값에 매핑합니다.
sub!/gsub!는 원본을 직접 변경합니다.
puts('foo bar baz'.gsub(/b\w+/) { |w| w.upcase })자주 묻는 질문
“치환” 강의는 무료인가요?
네 — “치환” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Ruby Academy 강의 전체를 잠금 해제할 수 있습니다. Ruby Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
“치환”에서 뭘 배우나요?
패턴과 함께 gsub를 사용합니다 브라우저에서 직접 실행하는 실습 코드로 Ruby Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
Ruby Academy을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 Ruby Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 3번째 강의입니다.
“치환” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 Ruby Academy 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 Ruby Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.