참고 관련 사이트 주소
http://madchick.egloos.com/1329019
http://regexlib.com/
http://www.codeproject.com/KB/tips/CollapsingProgressBars.aspx
http://creorix.com/tc/18
http://blog.naver.com/mydaylee?Redirect=Log&logNo=140035640151
http://broost.com/
문자열을 검색, 치환 과정에서 사용.
특수 문자
- ‘.’ 임의의 한글자만 표현
n Ex) a.e -> abe, ace ..
- ‘*’ 바로 앞의 문자를 의미 문자X가 없거나 그 하나 이상 ( ‘*’ 앞에 하나이상 문자 존재)
n Ex) s*e -> sse, sae, adffe,….
- ‘+’ 바로 앞의 문자를 의미 하나 이상
n Ex) s+e -> sse, ase….
- ‘?’ 바로 앞의 문자가 없거나 있음
n Th?e -> te , the, their…
- ‘^’ 바로 뒤의 문자열을 기준으로 동일한 문자열로 시작
n ^the - > the girl ..
- ‘$’ 문자열의 맨 마지막
n er$ -> gunner..
- ‘[]’ []안에 있는 문자열중에서 하나의 문자만을 의미 ( 범위를 지정할 땐 ‘-‘)
n [ab]cd -> acd , bcd..
n [0-9] -> 1, 4, ..
- ‘[^]’ []안에 있는 문자를 제외한 값을 의미
n [^ad]cd -> cd..
- ‘{}’ {}앞에 있는 문자나 문자열의 개수를 의미
n A{2}b -> aab… a{1,5}b -> aaaab , ab, aab,…
- ‘()’ ()안에 있는 글자들을 그룹화 한다.
n a(bc){2} -> abcbc……
- ‘|’ Or연산자
n Kim | lee
문자 클래스
- [[:alnum:]] -> [a-z0-9A-Z]
- [[:alpha:]] -> [a-zA-Z]
- [[:graph:]] -> 공백 문자를 제외한 화면에 출력 가능한 문자
- [[:space:]] -> 공백 문자, \n ,\t, \r( white space 문자 )
- [[:bank:]] -> 공백 문자 , 탭
- [[:lower:]] -> 소문자를 의미 [a-z]
- [[:upper:]] -> 대문자를 의미 [A-Z]
- [[:cntrl ]] -> 컨트롤 문자
- [[:digit:]] -> 숫자 한자를 의미 [0-9]
- [[:xdigit:]] -> 16진수에 쓰이는 문자를 의미
- ^ . [ ] & ( ) | * + ? {} \ -
- 위와 같은 문자를 표현하기 위해 ‘\’를 앞에 붙여야 한다.
n \*+ -> * 포함된 문자열 검색
n \[RE:[1-9][0-9*W] -> [RE:10],[RE:34]
n [*\/+?{}.]
\n |
줄넘김 문자 |
\r |
리턴 문자 |
\w |
알파벳과 _ (언더바) |
\W |
알파벳과 _ 가 아닌 것 |
\s |
빈 공간(space) |
\S |
빈 공간이 아닌 것 |
\d |
숫자 |
\D |
숫자가 아닌 것 |
\b |
단어와 단어 사이의 경계 |
\B |
단어 사이의 경계가 아닌 것 |
\t |
Tab 문자 |
\xnn |
16진수 nn에 해당하는 문자 |
간단한 Souce code
boost::regex expression("[a-z]");
char szBuf[1024] ;
boost::cmatch whatMatch;
HWND hWnd = ::GetDlgItem(m_hWnd,IDC_EDIT1) ;
::GetWindowText(hWnd,szBuf,1024) ;
if(boost::regex_match(szBuf, whatMatch, expression))
{
return;
}