'정규식'에 해당되는 글 2건
- 2009/05/20
- 2008/03/19
| 메타문자 | 기능 |
사용 예 |
설명 |
|
| ^ |
행의 시작 지시자 |
'^love' |
love로 시작하는 모든 행과 대응 |
|
| $ |
행의 끝 지시자 |
'love$' |
love로 끝나는 모든 행과 대응 |
|
| . |
하나의 문자와 대응 |
'l..e' |
l 다음에 두 글자가 나오고 e로 끝나는 문자열을 포함하는 행과 대응 |
|
| * |
선행 문자와 같은 문자의 0개 이상의 개수와 대응 |
' *love' |
0개 이상의 공백 문자 후에 love로 끝나는 문자열을 포함한 행과 대응 |
|
| [ ] |
[ ]사이의 문자집합 중 하나와 대응 |
'[Ll]ove' |
love나 Love를 포함하는 행과 대응 |
|
| [^ ] |
문자집합에 속하지 않는 한 문자와 대응 |
'[^A-KM-Z]ove' |
A와 K 사이의 범위에 포함되지 않거나, M과 Z 사이에 포함되지 않는 한 문자와 ove가 붙어 있는 문자열과 대응 |
|
| + |
선행문자와 같은 문자의 1개 이상의 개수와 대응 |
'[a-z]+ove' |
a와 z 사이의 1개 이상의 문자와 ove가 붙어있는 문자열과 대응(ex: move, love, ...) |
|
| ? |
선행문자와 같은 문자의 0개 혹은 1개와 대응 |
'lo?ve' |
l 다음에 o가 0개 혹은 1개이고 ve가 붙어있는 문자열과 대응. love 혹은 lve. |
|
| a|b |
a 혹은 b와 대응 |
'love|hate' |
love 혹은 hate와 대응 |
|
| ( ) |
정규표현식을 묶어준다 |
'lov(able|ely)' '(ov)+' |
lovable 혹은 lovely와 대응 ov가 한 번 이상 등장하는 문자열과 대응 |
C++ 프로그램을 만들다보면 정규식이 필요한 경우가 많이 있다. 특히나 요즘처럼 웹문서를 파싱해야할 경우 일일이 if else 로 처리해서 파싱한다는건 너무나 무식한 방법이다. 이럴 경우 정규식을 이용해서 필요한 부분만 걸러서 데이터를 처리해주면 정말 깔끔하게 만들수 있다.
JAVA나 C#의 경우 정규식 라이브러리가 기본적으로 제공되지만(사실 자바는 내가 거의 사용하지 않아서 잘 모름;;) C++의 경우 기본적으로 제공되지 않기 때문에 정규식을 사용하려면 정규식 라이브러리를 설치해서 사용해야한다. 인터넷을 뒤져보면 이것저것 여러가지 라이브러리들이 많이 나와있지만 이곳에서는 그 중 가장 유명하다고 할 수 있는 Boost 라이브러리를 설치하는 방법을 적고자 한다.
우선 사이트에 들어가서 압축 파일을 다운 받는다. 링크는 아래와 같다.
http://www.boost.org/
이 글을 쓰는 시점에서의 최신 버젼은 1.34 인데 이 버젼을 받아서 설치해보니 옵션을 비졀스투디오6 으로 주더라도 비졀스투디오 2005가 설치되어 있어서 그런지 자동으로 2005버젼으로 설치되어 버린다. 내 컴퓨터에만 그럴수도 있겠지만 나와 같이 6.0 버젼이 안깔리고 2005버젼으로만 설치되버린다면 옛날 버젼인 1.31 버젼을 받도록하자. 또한 이곳에서는 1.31 버젼의 설치방법만을 기록해둘 것이다.
그러면 압축파일을 받은 후에 압축을 풀고 폴더를 열어보자. 폴더를 열어보면 아래와 같이 파일들과 폴더들이 보일것이다.