정규 표현식 사용하기

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

기억하세요, 정규식은 강력하긴 하지만, 더 복잡한 패턴에 대해서는 복잡하고 관리하기 어려울 수 있습니다. 가독성을 목표로 하고, 정규식이 너무 복잡해지면 대안적 방법을 고려하세요.