헬린코린이

정규 표현식 본문

Programming/알고리즘 & 자료구조

정규 표현식

HCD 2022. 12. 22. 18:00

정규표현식,또는 정규식은 문자열에서 특정 문자 조합을 찾기 위한 패턴입니다.

수학자 Stephen Cole Kleene분 만들었으며

편집기의 패턴 매칭을 시작으로 사용되었고

grep 명령어가 정규표현식을 사용했고

vi. emacs 같은 편집기나 sed, awk 같은 유닉스 명령어에 정규표현식이 추가되었습니다.

이후 IDE와 여러 프로그래밍 언어의 표준 라이브러리로 지정됐습니다.

 

메타문자: 문자를 나타내는 문자

수량자: 앞 문자의 개수

 

정규표현식은 = 패턴구분자 시작 + 작성할 패턴 + 패턴구분자 끝 + 패턴 변경자로 이루어집니다.

                                   /                       패턴                /                          g

 

메타문자

- . : 모든문자

- [] : 대괄호 안에 들어가있는 문자를 찾습니다. 대괄호 안에서 ^는 not을 의미합니다.

- | : or

- \s : 공백

- \d : 숫자({0~9})

- \w : 영문자 모두, 숫자, 밑줄 ({0-9a-zA-Z_})

 

 

수량자

- + : 앞 문자가 하나 이상({1, })

- * : 앞 문자가 0개 이상({0, })

- {n, m} : 앞 문자가 n개 이상, m개 이하

- {n, } : 앞 문자가 n개 이상,

- {n} : 앞 문자가 n개

- ? : 앞 문자가 없거나 하나 있음 ({0, 1})  

- ? : 처음에 발견했을 떄 쉬고 다시 찾음 ?는 두가지 역할을 합니다.

 

정규식의 

강점으로는 패턴으로 검증 가능! if문을 많이 안 써도 된다.

약점으로는 너무 안 좋은 가독성! 유지보수하기 너무 힘들다.

 

그래서 간단한 검증일 때는 if문으로 해경하자. 메서드 명을 통해 가독성을 높이자

복잡한 검증이 있을 때만 정규표현식을 사용하자. 주석을 달아서 가동성을 높이자

 

그렇다면 정규표현식은 어디에서 쓰일까?

1. 컴파일러의 피서

2.CLI 환경을 주로 사용하는 경우, grep, sed, awk를 통해 쓰임

3. 이메일, 주소, 전화번호 규칙 검증

4. 입력에서 불필요한 입력 검증

5. 개발도구에서 문자열 치환

6. 로깅에서 찾아볼 때

7. 코딩테스트

Comments