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
- 월별 카운트
- Call
- PORTG
- Java
- application.mk
- solution
- Post
- 현재언어
- 파일존재
- array
- Avr
- 강좌
- is_array
- halliday
- php
- 0x
- C++
- unalias
- selectc
- android studio
- cocos2d-x
- 점점변하는값
- mathemetica
- 하이퍼 터미널
- mysql
- Join
- 단축키
- function
- SQL
- Get
Archives
- Today
- Total
코딩도사의 코드정리
이스케이프 문자와 기타 반복자 본문
Non Greedy repeats
기본적으로 정규식은 greedy 방법을 사용한다. greedy 방법은 가능한한 최대의 입력을 취급한다는 이야기다.
non-greedy 방법은 가능한한 최소의 입력을 받는다.
기본적으로 정규식은 greedy 방법을 사용한다. greedy 방법은 가능한한 최대의 입력을 취급한다는 이야기다.
non-greedy 방법은 가능한한 최소의 입력을 받는다.
abcdaXbcdabcdX 와 같은 문자가 있으면
(a.+X).* 로 매치했을 때 abcdaXbcdabcdX 가 매치되지만
아래와 같은
(a.+?X).* 같은 표현으로 매치하면 abcdaX 가 매치된다.
*?
+?
{n,}?
{n,m}?
이까지는 이해가 가는데
?? 라는 표현도 있음.
예를 들어 표현하면
a??c 를 했을 때
abc444ac 라는게 있다면 abc 를 찾는게 아니고 ac 를 찾음
가능한한 짧은걸 찾음.
Back references
std::string s("apple banana");
std::tr1::regex rg("(.+) (.+)");
s = std::tr1::regex_replace(s,rg,std::string("$2 $1"));
cout << s << endl;
결과값 : banana apple
매치하면서 썼던 문자집합을 $n 와 같은 표현으로 사용가능.
이스케이프 문자 |
같은 표현 |
---|---|
|
|
|
|
|
모든공백문자 |
|
|
|
|
|
탭 |
|
수직 탭 |
|
|
|
|
|
|
|
|
|
|
|
수평탭을 제외한 것 |
|
수직탭을 제외한 것 |
'컴퓨터 이야기 > 정규식' 카테고리의 다른 글
정규식 입문 (1) | 2010.06.21 |
---|---|
정규식 ( Regular Expression ) 소개 (0) | 2010.06.20 |