Computer >> 컴퓨터 >  >> 프로그램 작성 >> Ruby

Ruby의 Gsub 메서드를 사용하는 3가지 멋진 방법

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 메소드에 대해 배웠습니다! 문자열 안의 문자를 바꾸거나 대체할 수 있는 강력한 방법입니다.

여러 용도 :

  • 잘못된 문자 제거(두 번째 인수를 빈 문자열로 지정)
  • 자리 표시자 및 약어를 전체 값으로 대체
  • 패턴 및 논리를 사용하여 문자열 변경

Ruby의 Gsub 메서드를 사용하는 3가지 멋진 방법

이제 이 방법을 연습하여 새로운 지식을 고수할 차례입니다.

읽어주셔서 감사합니다 🙂