Posts [Web] 정규표현식 (Regular Expressions)
Post
Cancel

[Web] 정규표현식 (Regular Expressions)

정규표현식

문자열에서 특정 패턴을 만족하는 부분을 찾아낼 때 사용한다.


\d

  • 숫자 대표문자
  • digit
  • 1글자만 찾는다.


\w

  • 글자 대표문자
  • word
  • a, b, c, 가, 나, 다, 1, 2, 3과 같은 문자와 숫자를 포함한다.
    특수문자는 포함하지 않지만, _는 포함한다.
  • 1글자만 찾는다.


+

  • 1개 이상


*

  • 0개 이상
  • e.g. [1-9]\d*는 자연수


?

  • 있거나 없거나
  • e.g. \d+-?\d+-?\d+는 전화번호(숫자-숫자-숫자 or 숫자숫자숫자)


[]

  • 속한 것 중에 하나
  • e.g. [- ]?는 - or (공백)이 있거나 없거나
            \d+[- ]?\d+[- ]?\d+는 전화번호(숫자-숫자-숫자 or 숫자숫자숫자 or 숫자 숫자 숫자)


{숫자}

  • 숫자번 반복
  • e.g. \d{2}는 숫자가 2번 반복


{숫자1, 숫자2}

  • 숫자1부터 숫자2까지 반복
  • e.g. \w{2,3}은 문자가 2-3번 반복


[어떤 것-어떤 것]

  • 범위 지정
  • e.g. [a-z]는 소문자 알파벳만 선택
            [가-힣]은 한글만 선택


[어떤 것-어떤 것]+

  • 범위 지정인데 1개 이상
  • e.g. [a-z]+는 소문자 알파벳이 1개 이상
            [가-힣]+는 한글이 1개 이상(한글 단어)


다양한 대표문자

\s

  • 공백 문자
  • e.g. 스페이스, 탭, 뉴라인

\S

  • 공백 문자를 제외한 문자

\D

  • 숫자를 제외한 문자

\W

  • 글자 대표문자를 제외한 문자
  • e.g. 특수문자, 공백 등


\대문자 알파벳이면 반대(여집합)의 의미인 것 같다.


프로그래밍 언어와 정규표현식 사용

Java, C#

  • 대표문자를 표현할 때 \를 2번 써야 한다.
  • escape 때문이다.
  • e.g. \\d, \\w 등등

JavaScript, Python

  • 대표문자를 표현할 때 \를 1번만 써도 된다.
  • raw string을 지원하기 때문이다.
  • e.g. \d, \w 등등


Reference

This post is licensed under CC BY 4.0 by the author.