Home [Study] Regex 정규표현식
Post
Cancel

[Study] Regex 정규표현식

정규 표현식은 / (expression) / 로 표현한다.

정규 표현식 Test


Groups and Ranges

  • | : 또는
  • () : 그룹
    • /gr(a|e)y/ : gr과 y 사이에 a 또는 e가 존재하는 문자
  • (?:) : 찾지만 기억하지 않음

  • [] : 문자셋, 괄호안의 어떤 문자든
  • [^] : 부정 문자셋, 괄호안의 어떤 문자가 아닐 때
    • [a-zA-Z0-9] : a~z, A~Z, 0~9 범위에 속하는 모든 문자
    • [^a-zA-Z0-9] : a~z, A~Z, 0~9 범위에 속하지 않는 모든 문자


Quantifiers

  • ? : 없거나 있거나 (zero or one)
  • * : 없거나 있거나 많거나 (zero or more)
  • + : 하나 또는 많이 (one or more)
    • /gra?y/ : a가 없거나 있는 문자
  • {n} : n번 반복
  • {min, } : 최소 min번 반복
  • {min, max} : 최소 min번, 최대 max번 반복
    • /gra{2}y/ : a가 두 번 존재하는 문자
    • /gra{2, 3}y/ : a가 최소 2번 최대 3번 존재하는 문자


Boundary-type

  • \b : 단어 경계
  • \B : 단어 경계가 아님
    • /\bYa/ : 단어 앞에서 쓰이는 Ya 문자
    • /Ya\b/ : 단어 뒤에서 쓰이는 Ya 문자
    • /Ya\B/ : 단어 뒤에서 쓰이지 않는 Ya문자
  • ^ : 문장의 시작
  • $ : 문장의 끝


Character Classes

  • . : 줄바꿈 문자를 제외한 어떤 글자
  • \ : 특수 문자가 아닌 문자
    • \. : . 문자
  • \d : digit 숫자
  • \D : digit 숫자 아님
  • \w : word 문자
  • \W : word 문자 아님
  • \s : space 공백
  • \S : space 공백 아님


EXAMPLE

  • 전화 번호

    /\d{2,3}[- .]\d{3,4}[- .]\d{4}/

  • 이메일

    /[a-zA-Z0-9._+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9.]/

  • 유튜브 아이디 추출

    • http://www.youtu.be/id
    • https://www.youtu.be/id
    • http://youtu.be/id
    • youtu.be/id

    /(?:https?:\/\/)?(/:www\.)?youtu.be\/([a-zA-Z0-9-]{1,})/

[Study] Python - requests

[Dreamhack] Quiz: x86 Assembly 3