안녕하세요. 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 : 공백이 아닌 나머지



감사합니다.


WRITTEN BY
IT김군
S/W 개발자 김군의 메모장

,