0. 루비에서 정규식 사용 방법
1. 예제 1 : 텍스트 일부를 치환 (.sbu)
2. 예제 2 : 텍스트에서 매칭되는 모두를 치환 ( .gsub)
3. 예제 3 : 동시 매칭 ( /P(erl|HP/ : Perl or PHP)
4. 예제 4 : [...] 패턴
5. 예제 5 : [^...] 역패턴
6. 에제 7 : 모든 문자를 매칭하는 패턴
.ool 은 cool, fool, pool, tool 등에 매칭
7. 예제 6 : 반복되는 특정 패턴 '+', '*'
8. 예제 8 : 하나 이상의 반복되는 패턴
10. 예제 10 : 특정 패턴이 있는지 조사
11. 예제 11 : =~ 조건문에서
12. 예제 12 : 패턴이 매칭된 부분을 읽어 들이기
13. 예제 13 : 패턴과 매칭되는 여러 문자열 차례로 읽어 들이기
>> /Perl/
==> /Perl/
==> /Perl/
1. 예제 1 : 텍스트 일부를 치환 (.sbu)
>> "Perl is cool. I like Per!".sub(/Perl/, "Ruby")
==> "Ruby is cool. I like Perl!"
==> "Ruby is cool. I like Perl!"
2. 예제 2 : 텍스트에서 매칭되는 모두를 치환 ( .gsub)
>> "Perl is cool. I like Per!".gsub(/Perl/, "Ruby")
==> "Ruby is cool. I like Ruby!"
==> "Ruby is cool. I like Ruby!"
3. 예제 3 : 동시 매칭 ( /P(erl|HP/ : Perl or PHP)
>> "Perl is cool. I like PHP!".gsub(/P(erl|HP)/, "Ruby")
==> "Ruby is cool. I like Ruby!"
==> "Ruby is cool. I like Ruby!"
4. 예제 4 : [...] 패턴
>> "The password is 9428.".gsub(/[0-9]/, "*")
==> "The password is ****"
==> "The password is ****"
5. 예제 5 : [^...] 역패턴
>> "I love Seoul!".gsub(/[^a-zA-Z]/, "*")
==> "I*love*Soul*"
==> "I*love*Soul*"
6. 에제 7 : 모든 문자를 매칭하는 패턴
.ool 은 cool, fool, pool, tool 등에 매칭
>> "Ruby is cool. I like Per!".sub(/.ool/, "fun")
==> "Ruby is fun. I like Perl"
==> "Ruby is fun. I like Perl"
7. 예제 6 : 반복되는 특정 패턴 '+', '*'
>> "Ruby is cooooool."sub(/o+/, "oo")
==> "Ruby is cool. I like Perl!"
==> "Ruby is cool. I like Perl!"
8. 예제 8 : 하나 이상의 반복되는 패턴
>> "1001001001888".sub(/(001)+/, "")
==> "1888"
==> "1888"
10. 예제 10 : 특정 패턴이 있는지 조사
>> "A year has 365 days." =~ /[0-9]+/
==> 11 (11번째 char)
==> 11 (11번째 char)
11. 예제 11 : =~ 조건문에서
>> if "A year has 365 days." =~ /[0-9]+/
>> puts "There is a number in the string!"
>> end
==> There is a number in the string!
==> nil
>> puts "There is a number in the string!"
>> end
==> There is a number in the string!
==> nil
12. 예제 12 : 패턴이 매칭된 부분을 읽어 들이기
>> if "A year has 365 days." =~ /([0-9]+)/
>> puts $1
>> end
365
==> nil
>> puts $1
>> end
365
==> nil
13. 예제 13 : 패턴과 매칭되는 여러 문자열 차례로 읽어 들이기
>> if "210.163.138.100" =~ /([0-9]+) \.([0-9]+) \.([0-9]+) \.([0-9]+)/
>> puts $1
>> puts $2
>> puts $3
>> puts $4
>> end
210
163
138
110
==> nil
>> puts $1
>> puts $2
>> puts $3
>> puts $4
>> end
210
163
138
110
==> nil