ㄱ. 목적
1. C#에서 정해진 패턴을 사용해서 패턴에 일치하는 값을 판단하는 정규 표현식의 종류와 사용법에 대해 알아보자
ㄴ. 본론
1. 정해진 패턴에 대한 표현식들은 다음과 같다.
- 정규 표현식에 사용되는 특수 문자
- '.' => 점
- 임의의 한 문자를 의미합니다.
- a.c -> abc, aec, avc, …
- .us -> bus, cus, dus, …
- 임의의 한 문자를 의미합니다.
- '*'
- 바로 앞의 문자가 없거나 하나 이상인 경우
- s*e -> e, se, see, ssse, …
- abc* -> ab, abc, abcc, abccc, …
- h*im -> im, him, hhim, hhhim, …
- 바로 앞의 문자가 없거나 하나 이상인 경우
- '+'
- 바로 앞의 문자가 하나 이상
- s+e -> se, sse, ssse, …
- 바로 앞의 문자가 하나 이상
- '?'
- 바로 앞의 문자가 없거나 하나뿐인 경우
- th?e -> e, the 두가지 표현이 유일함
- 바로 앞의 문자가 없거나 하나뿐인 경우
- '^'
- 바로 뒤의 문자열로 시작
- ^The.. 뒷부분부터 공백까지 검사. -> The girl is, Theather
- ^a?bc -> bc, abc, …
- ^.e -> he, me, request, settle, …
- ^s.e?.. E는 나와도되고 안나와도 됩니다. -> sa, sae, sb, sbe, …
- 바로 뒤의 문자열로 시작
- '$'
- 바로 앞의 문자열로 종료
- a?bc$ -> eeabe, seebc, bc..
- +.e$ -> onthetoe, bctae, appetittle, …
- s?c+$ -> e, se, ee, eee, seee, seee, …
- 바로 앞의 문자열로 종료
- '[ ]'
- [ ] 안에 있는 문자 중 하나(범위의 경우 '-'로 지정합니다.)
- [ab]cd -> acd, bcd, …
- [a-z] -> 알파벳 소문자
- [a-zA-Z] -> 알파벳
- [0-9] -> 숫자
- ag[a-z] -> aga, agbcd, agzzz, …
- ^ab[cd]ef -> abcef, abdef, …
- ^[a-zA-Z] -> 영문자로 시작
- ^[가-힣] 한글로 시작해야 할 때
- [a^-zA-Z0-9] -> '^' 표시가 대괄호 안으로 들어갈 경우 제외의 의미가 됩니다. 부정의 의미. ->영문자나 숫자로 시작할 수 없ㅅ브니다.
- [a-zA-Z0-9]$ -> 영문자나 숫자로 종료
- "[가-힣]" -> 한글 완성형만 가능합니다. "ㅋㅋ", "ㅎㅎ" 같은 구문은 불가능합니다.
- "[abc]" -> abc중 하나라는 뜻 -> c#문법으로 if("a" || "b" || "c")와 같음.
- [ ] 안에 있는 문자 중 하나(범위의 경우 '-'로 지정합니다.)
- '{ }'
- { } 앞의 문자나 문자열의 출현 횟수, Schema에서 min / maxoccur과 같은 개념
- a{2}b -> aab, … -> a가 꼭 2회 나와야 함
- a{2, }b -> aab, aaab, aaaab, … -> a가 2회 이상 나와야 함
- a{2, 3}b -> aa, aaab -> a가 2회~3회 나와야 함
- { } 앞의 문자나 문자열의 출현 횟수, Schema에서 min / maxoccur과 같은 개념
- '( )'
- ( )안에 있는 문자를 그룹화
- a(bc){2} -> abcbc -> a 다음 bc가 2회 나와야 함
- a(bc)* -> abcbcbcbc -> a 다음 bc의 출현이 무한대로 가능 함
- ( )안에 있는 문자를 그룹화
- '|'
- or 연산자
- 영어로만 아이디를 만들라 -> [a-zA-Z]+ 공백없는 영어단어
- He|She -> he, she is..
- (He|She)is -> Heis, Sheis
- 영어로만 아이디를 만들라 -> [a-zA-Z]+ 공백없는 영어단어
- or 연산자
- 특수문자 사용
- ^ [] $ () | * + ? {} \
- 앞부분에 \를 붙여서 사용합니다.
- \*+ -> *가 하나 이상 포함된 패턴.. -> *나 **나 ***이 무한대로 가능
- \d : 정수
- \d{2, 3} - / d{3,4} - / d{4} : 전화번호 찾는 정규식
- \D : 숫자가 아닌 나머지 모두
- \w : [a-zA-Z0-9]의 줄임 표현
- \W : [^a-zA-Z0-9] 영문자와 숫자만 아니면 됨.
- \s : 공백
- \S : 공백이 아닌 나머지
- 앞부분에 \를 붙여서 사용합니다.
- ^ [] $ () | * + ? {} \
- '.' => 점
- 예제
- 4.6%를 찾는다
- [0-9]{1,3}\.?[0-9]*%
- 전화번호를 찾는다.
- \d{2,3}-\d{3,4}-\d{4}
- [0-9]{2,3}-[0-9]{3,4}-[0-9]{4}
- Url 주소를 가져온다.
- 이름(textBox)
- [가-힣]{2,5}
- 한글 최소 2~5글자 입력가능
- [가-힣]{2,5}
- 나이(textBox)
- [0-9]{1,2}
- 1?[0-9]?[0-9]
- 4.6%를 찾는다
- 주민등록번호
- [0-9]{6}-[0-9]{7}
- [0-9][0-9][01][0-9][0123][0-9]-[1234][0-9]{6}
2. C# 사용 예제
3. 결론
- C#에서 정규식의 예와 그 사용을 알아보았습니다.
'C# WPF 프로그래밍' 카테고리의 다른 글
C# 키 이벤트 숫자만 받기 (0) | 2014.02.25 |
---|---|
Visual Studio 소스 정렬 (1) | 2014.01.26 |
C# 폴더의 유무 확인하여 폴더 생성 하는 법 (0) | 2014.01.15 |
Visual studio 자동 using 하기 (0) | 2014.01.15 |
WPF WrapPanel 사용하기 (0) | 2014.01.08 |