Ruby:
정규 표현식 사용하기
사용 방법:
기본 매칭
간단한 패턴에 대해 문자열을 매치하려면 match
메소드를 사용할 수 있습니다. 아래에서는 주어진 문자열 내에 “Ruby"라는 단어가 존재하는지 확인하고 있습니다.
if /Ruby/.match("Hello, Ruby!")
puts "매치 발견!"
end
# 출력: 매치 발견!
변수를 이용한 패턴 매칭
변수를 regex에 #{}
문법을 사용하여 내보내어 패턴을 동적으로 만들 수 있습니다.
language = "Ruby"
if /#{language}/.match("Programming in Ruby is fun.")
puts "Ruby에 대해 이야기 중!"
end
# 출력: Ruby에 대해 이야기 중!
정규식을 통한 치환
gsub
메소드를 사용하면 지정한 치환 문자열로 패턴의 모든 발생을 대체할 수 있습니다.
puts "foobarfoo".gsub(/foo/, "bar")
# 출력: barbarbar
캡쳐링
정규식에서 괄호는 매치의 일부를 캡쳐하는 데 사용됩니다. match
메소드는 캡쳐에 접근할 수 있도록 MatchData
객체를 반환합니다.
match_data = /(\w+): (\d+)/.match("Age: 30")
puts match_data[1] # 캡쳐된 라벨
puts match_data[2] # 캡쳐된 값
# 출력:
# Age
# 30
타사 라이브러리 사용하기
루비의 표준 라이브러리가 강력하긴 하지만, 때로는 더 특화된 기능이 필요할 때가 있습니다. 정규식 작업에 있어 인기 있는 젬 중 하나는 Oniguruma
로, 내장된 루비 정규식 엔진을 넘어서는 추가적인 정규식 기능을 제공합니다.
다음을 사용하여 설치하세요:
gem install oniguruma
설치한 후 oniguruma
를 요구한 것을 가정하고 사용 예시는 다음과 같을 수 있습니다:
# 이것은 좀 더 고급 예시일 수 있으며 추가 설정이 필요할 수 있습니다
require 'oniguruma'
pattern = Oniguruma::ORegexp.new('(\d+)')
match_data = pattern.match("The number is 42.")
puts match_data[1]
# 출력: 42
기억하세요, 정규식은 강력하긴 하지만, 더 복잡한 패턴에 대해서는 복잡하고 관리하기 어려울 수 있습니다. 가독성을 목표로 하고, 정규식이 너무 복잡해지면 대안적 방법을 고려하세요.