STUDY/문자열

정규표현식

빵아찌 2022. 8. 16. 00:36
정규표현식은 주어진 문자열 속에서 특정 패턴을 가진 문자열을 찾을때 사용합니다.

범용 고유 식별자(UUID)처럼 특정 규칙이 있는 식별자나 사용자 이름, IP 주소, URL 등 여러 문자열로부터 패턴을 가진 정보를 찾아야 할 때 사용할 수 있습니다.

 

  문자집합 예시
[] [] 안에 있는 문자 중 하나 [ab]cd acd, bcd ...
[a-zA-Z]cd Zcd, acd, bcd
^[a-zA-Z] 영문자로 시작
"[가-힣]" 완성된 문자열만 가능
. 임의의 한 문자 e.t → eat, ext, ect, est ...
* 바로 앞의 문자가 없거나 하나 이상 e*t → t, et, eet, eeet, eeeet ...
+ 바로 앞의 문자가 하나 이상 e+t → et, eet, eeet ...
? 바로 앞의 문자가 없거나 하나 e?t → t, et
^ 바로 뒤의 문자열로 시작 ^a?bc → bc, abc ...
^The → The guardian 뒷부분부터 공백까지
$ 바로 앞의 문자열로 종료 a?bc$ → abc, bc, eatabc, testbc ...
() () 안에 있는 문자를 그룹화 a(bc){2}→ abcbc ... a 다음 bc가 2번 나와야함
{} {} 앞의 문자나 문자열 출현 횟수 min, max a{2,}b → aab, aaab, aaab
a{2,3}b → aab, aaab 최소 2번
     
[a-z] 영어 소문자  
[A-Z] 영어 대문자  
[0-9] 숫자  
[k-p] 알파벳 k ~ p까지  
[1-5] 숫자 1 ~ 5까지  
     
\ 특수 문자 사용 \*+  → * 가 하나 이상 포함된 패턴

\d : 순수한 숫자, 정수값, 0-9

\d{2,3}-/d{3,4}-/d{4}  :   전화번호를 찾는 정규식
-? 하이퍼뒤에 물음표가 있으면 -가 있어도 되고 없어도 된다는 뜻
\D : 숫자가 아닌 나머지 모든 얘.
\w : [a-zA-Z0-9] 의 줄임표현.
\W : [^a-zA-Z0-9] 영문자와 숫자만 아니면 된다는 뜻.
\s : 공백
\S : 공백이 아닌 나머지 얘들.

 

도움이된 페이지

https://sooftware.io/regex/

https://durubiz.tistory.com/entry/C-%EC%97%90%EC%84%9C-%EC%A0%95%EA%B7%9C%ED%91%9C%ED%98%84%EC%8B%9D-RegexIsMatch-%EC%9D%B4%EC%9A%A9

https://jacking75.github.io/csharp_RegularExpression/

학교에서 알려주지 않는 17가지 실무 개발 기술