안녕하세요. IT 김군입니다.
C# / .NET 정규표현식이 구글링해서 나오는게 많이 없더군요..
그래서 혹시나 필요할지 몰라 메모합니다.
정규 표현식에 사용되는 특수 문자
'.' => 점
임의의 한 문자를 의미합니다.
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회 나와야 함
'( )'
( )안에 있는 문자를 그룹화
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
특수문자 사용
^ [] $ () | * + ? {} \
앞부분에 \를 붙여서 사용합니다.
\*+ -> *가 하나 이상 포함된 패턴.. -> *나 **나 ***이 무한대로 가능
\d : 정수
\d{2, 3} - / d{3,4} - / d{4} : 전화번호 찾는 정규식
\D : 숫자가 아닌 나머지 모두
\w : [a-zA-Z0-9]의 줄임 표현
\W : [^a-zA-Z0-9] 영문자와 숫자만 아니면 됨.
\s : 공백
\S : 공백이 아닌 나머지
감사합니다.
'C# WPF 개발 메모장' 카테고리의 다른 글
[C# / .NET] 차량번호 정규식 / 체크디지트 (0) | 2018.03.22 |
---|---|
[C# / .NET] 휴대전화 번호 / 핸드폰 번호 정규식, 체크디지트 (1) | 2018.03.21 |
[C#] 핸드폰 번호에 하이픈(Hyphen / - ) 넣기 (0) | 2018.03.21 |
[C# / WPF] Contents Visible / InVisible (Hidden) 보이기 / 숨기기 (1) | 2018.03.20 |
[C# / WPF] CheckBox 사용법과 TextBox (Content) Enable / Disable 연계 (0) | 2018.03.16 |
WRITTEN BY
- IT김군
S/W 개발자 김군의 메모장