Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- Eclipse
- 메일왕창보내는법
- node.js web framework
- 스킨 스쿠버
- 명사 추출기
- scala
- flex3
- Lift
- php
- 책이야기
- Cross
- nodejs express
- 나의 프로젝트
- Node.js
- 디즈니씨
- C/C++
- 베트남어
- ajax
- 명사 분석기
- ejb
- php thumbnail
- iBatis
- express for node.js
- rss
- 나의 취미
- ror실행
- 주식이야기
- 명사 뽑아내기
- docker
- 도커
Archives
- Today
- Total
nkdk의 세상
루비의 정규 표현식 본문
정규표현식은 문자열, 정수, 실수, 배열등을 지원하는 것이다.
하지만 정규표현식은 루비, 펄,awk같은 스크립트 언어만 지원한다.
이것이 난해하기는 하지만 문자열을 다루는 데는 매우 강력한 도구이다.
외부라이브러리 지원과 내장형 직접 지원에는 큰 차이가 있다.
이곳에서는 실제 동작하는 정규표현식 예제를 몇 가지 살펴보도록 한다.
Perl혹은 python을 포함하는 문자열을 찾는 패턴은 다음과 같다.
/Perl|Python/
같은 걸로 다음과 같이 표현이 가능하다.
/P(erl|ython)/
패턴에서는 문자 반복을 표현할 수도 있다.
또 다른 패턴으로는 /ab+c/ 는 a가 하나 오고, 그 뒤에 1개 이상의 b가 오고
이어서 c가오는 문자열이다. 이 패턴에서 더하기를 별표로 바꾼 /ab*c/
는 a가 하나 오고, b가 없거내 여러개이다.
문자 그룹 매치를 보자.
/s 공백문자(space, tab, newline 등)
/d 숫자
/w 일반적인 단어에서 쓰이는 문자를 나타낸다
'.' 는 아무 글자나 한 글자를 의미한다.
/\d\d:\d\d:\d\d\ # 12:34:56형태의 시간이다.
/Perl\s+Python/ #Perl, 1개 이상의 공백문자, 그리고 Python
/Ruby (Perl|Python)/ # Ruby, 공백, 그리고 Perl 이나 Python 중 하나
해당된 문자열이 Perl 이나 Python을 포함하고 있으면 메시지를 출력
if line =~ /Perl|Python/
puts "스크립트 언어에 대한 언급: #{line}"
end
루비의 치환 메서드를 이용하는 방법
line.sub(/Perl/, 'Ruby') #처음 나오는 'Perl'을 Ruby로 치환
line.gsub(/Python/, 'Ruby') #모든 'Python'을 'Ruby'로 치환
문자열에서 Perl과 Python을 모두 Ruby로 바꾸려면 아래와 같이 쓰면 된다.
line.gsub( /Perl|Python/, 'Ruby' )
앞으로 하다가 보면 계속적으로 정규 표현식에 대해 더 많이 다루게 된다.
다음은 블록과 반복자..
하지만 정규표현식은 루비, 펄,awk같은 스크립트 언어만 지원한다.
이것이 난해하기는 하지만 문자열을 다루는 데는 매우 강력한 도구이다.
외부라이브러리 지원과 내장형 직접 지원에는 큰 차이가 있다.
이곳에서는 실제 동작하는 정규표현식 예제를 몇 가지 살펴보도록 한다.
Perl혹은 python을 포함하는 문자열을 찾는 패턴은 다음과 같다.
/Perl|Python/
같은 걸로 다음과 같이 표현이 가능하다.
/P(erl|ython)/
패턴에서는 문자 반복을 표현할 수도 있다.
또 다른 패턴으로는 /ab+c/ 는 a가 하나 오고, 그 뒤에 1개 이상의 b가 오고
이어서 c가오는 문자열이다. 이 패턴에서 더하기를 별표로 바꾼 /ab*c/
는 a가 하나 오고, b가 없거내 여러개이다.
문자 그룹 매치를 보자.
/s 공백문자(space, tab, newline 등)
/d 숫자
/w 일반적인 단어에서 쓰이는 문자를 나타낸다
'.' 는 아무 글자나 한 글자를 의미한다.
/\d\d:\d\d:\d\d\ # 12:34:56형태의 시간이다.
/Perl\s+Python/ #Perl, 1개 이상의 공백문자, 그리고 Python
/Ruby (Perl|Python)/ # Ruby, 공백, 그리고 Perl 이나 Python 중 하나
해당된 문자열이 Perl 이나 Python을 포함하고 있으면 메시지를 출력
if line =~ /Perl|Python/
puts "스크립트 언어에 대한 언급: #{line}"
end
루비의 치환 메서드를 이용하는 방법
line.sub(/Perl/, 'Ruby') #처음 나오는 'Perl'을 Ruby로 치환
line.gsub(/Python/, 'Ruby') #모든 'Python'을 'Ruby'로 치환
문자열에서 Perl과 Python을 모두 Ruby로 바꾸려면 아래와 같이 쓰면 된다.
line.gsub( /Perl|Python/, 'Ruby' )
앞으로 하다가 보면 계속적으로 정규 표현식에 대해 더 많이 다루게 된다.
다음은 블록과 반복자..