Ruby의 gsub
에 대해 이야기해 봅시다. 방법 및 사용 방법. 먼저 이 방법을 사용하려면 문자열이 필요합니다.
왜?
gsub
의 요점은 문자열의 일부를 바꾸는 것입니다.
사실 :
"gsub"의 "sub"는 "substitute"를 의미하고 "g"는 "global"을 의미합니다.
다음은 예제 문자열입니다. :
str = "white chocolate"
"white"라는 단어를 "dark"라는 단어로 바꾸고 싶다고 가정해 봅시다.
방법은 다음과 같습니다. :
str.gsub("white", "dark")
이것은 :
주어진 문자열 str
, 첫 번째 단어의 모든 항목을 교체합니다(white
) 두 번째 단어(dark
) ).
즉, 훨씬 더 좋은 초콜릿을 먹을 수 있습니다.
아 잠깐만, 그냥 문자열입니다.
우리는 그것을 먹을 수 없습니다! 🙂
어쨌든…
루비의 gsub
메소드는 단순한 대체 이상의 작업을 수행할 수 있습니다. .
몇 가지 예를 살펴보겠습니다.
정규 표현식으로 패턴 바꾸기
한 단어를 바꾸는 것은 괜찮습니다.
하지만 패턴을 바꿀 수 있다면 어떨까요?
좋아요 :
연도, 이메일 주소, 전화번호 등
할 수 있습니다!
예시 :
"a1".gsub(/\d/, "2") # "a2"
첫 번째 인수는 정규식이며 여기에서 다루기에는 너무 많습니다.
하지만 패턴 일치 언어입니다. .
이 경우 \d
"a1"의 숫자 "1"과 같은 숫자를 찾습니다.
이 작업도 수행할 수 있습니다. :
"a1".gsub(/(\w)(\d)/, '\2\1')
결과 :
"1a"
순서를 바꿨습니다!
이것은 "캡처 그룹"이라는 기능을 사용하여 작동합니다.
그룹을 \1
로 사용할 수 있습니다. 첫 번째 그룹의 경우 \2
두 번째 그룹 등
그룹은 괄호로 생성됩니다.
블록이 있는 고급 Gsub
블록과 함께 gsub를 사용하기 시작하면 상황이 정말 흥미로워집니다.
왜?
블록 내에서 논리를 사용하여 무언가를 대체하는 방법을 결정할 수 있기 때문입니다.
정적 값을 사용하는 대신.
예를 들어 :
"dog".gsub(/\w+/) { |animal| animal == "dog" ? "cat" : "dog" }
\w+
로 동물을 찾습니다. , "하나 이상의 영숫자"를 의미합니다.
그럼 :
- "개"인 경우 "고양이"로 대체합니다.
- 단어가 다른 것인 경우 , "개"로 대체합니다.
정적 값인 gsub의 2번째 매개변수로는 이러한 논리가 불가능합니다.
여러 용어를 해시로 바꾸기
대체할 목록이 있으면 해시를 사용할 수 있습니다.
좋아요 :
colors = { "B" => "blue", "G" => "green", "R" => "red" }
이것은 키가 값으로 대체되는 번역 사전처럼 작동합니다.
예시 :
"BBBGR".gsub(/\w/, colors)
결과 :
"bluebluebluegreenred"
첫 번째 인수가 키와 일치하는지 확인하십시오.
이 경우 \w
개별 문자와 일치하므로 "B"와 일치한 다음 "파란색"으로 바꿉니다.
요약
Ruby의 gsub 메소드에 대해 배웠습니다! 문자열 안의 문자를 바꾸거나 대체할 수 있는 강력한 방법입니다.
여러 용도 :
- 잘못된 문자 제거(두 번째 인수를 빈 문자열로 지정)
- 자리 표시자 및 약어를 전체 값으로 대체
- 패턴 및 논리를 사용하여 문자열 변경
이제 이 방법을 연습하여 새로운 지식을 고수할 차례입니다.
읽어주셔서 감사합니다 🙂