정규표현식

nathan·2021년 8월 26일
0

Python

목록 보기
5/7

정규 표현식

  • 특정한 규칙을 가진 문자열의 집합을 표현할 때 사용하는 형식 언어
  • 주로 프로그래밍 언어나 텍스트 편집기 등에서 문자열의 검색과 치환을 위한 용도로 쓰임
  • 입력한 문자열에 특정한 조건을 표현할 경우, 일반적인 조건문으로 표현하려면 다소 복잡할 수 있으나, 정규 표현식을 이용하면 매우 간단하게 표현 가능
  • BUT, 코드의 가독성이 떨어진다는 단점이 있음

정규 표현식 표현 방법

  • 정규 표현식은 표준인 POSIX의 정규표현식과, POSIX 정규 표현식에서 확장된 Perl 방식의 PCRE가 대표적이며, 이외에도 수많은 정규 표현식이 존재함

  • 다양한 정규 표현식 간에 약간의 차이는 있으나 대부분 비슷함

  • 정규 표현식에서 사용하는 기호를 Meta 문자라고 함

  • Meta 문자는 표현식 내부에서 특정한 의미를 갖는 문자를 말함

  • 공통적인 기본 Meta 문자의 종류는 다음과 같다.

    . ^ $ * + ? { } [ ] \ | ( )

  • ^ : 문자열의 시작

  • $ : 문자열의 종료. 옵션에 따라 문장의 끝 또는 문서의 끝에 매치된다.

  • . : 임의의 한 문자

  • []: 문자 클래스. 문자 클래스 안에 들어가 있는 문자는 그 바깥에서 하나의 문자로 취급된다.

  • ^ : 문자 클래스 내에서 ^는 not

  • - : ex) a-z는 a에서 z까지의 문자

  • | : or를 나타냄

  • ? : 앞 문자가 없거나 하나 있음

  • + : 앞 문자가 1개 이상임

  • * : 앞 문자가 0개 이상임

  • {n,m} : 앞 문자가 n개 이상 m개 이하. {0,1} 은 ?와 같은 의미다.

  • {n,} : 앞 문자가 n개 이상. 위의 형태에서 m이 생략된 형태이다. {0,} 이면 *와 같고 {1,} 이면 +와 같은 의미이다.

  • {n} : 앞 문자가 정확히 n개. {n,n} 과 같은 의미이다.

  • () : 하나의 패턴구분자 안에 서브 패턴을 지정해서 사용할 경우 괄호로 묶어주는 방식을 사용한다.

  • \s : 공백문자

  • \b : 문자와 공백 사이를 의미한다.

  • \d : 숫자 [0-9]와 같다.

  • \t : 탭문자

  • \w : 단어 영문자+숫자+(밑줄) [0-9a-zA-Z]

  • 문자 이스케이프는 대문자로 적으면 반대를 의미


References

자세한 내용은 다음 블로그를 참고하면 될 듯 하다.
정규표현식 :: 불곰
파이썬 정규표현식 사용

profile
나는 날마다 모든 면에서 점점 더 나아지고 있다.

0개의 댓글