정규식 Regular Expression

 
정규식 표현 설명
^x 문자열이 x로 시작합니다.
x$ 문자열이 x로 끝납니다.
. 임의의 한 문자를 표현합니다.
x* x가 0번 이상 반복합니다.
x+ x가 1번 이상 반복합니다.
x? x가 존재하거나 존재하지 않습니다.
x|y x 또는 y를 찾습니다. or연산자.
(x) x를 그룹화 합니다.
(x)(y) x 그룹과 y 그룹을 and 연산으로 진행합니다.
(x)(?:y)  
x{n} x를 n번 반복한 문자를 찾습니다.
x{n,} x를 n번 이상 반복한 문자를 찾습니다.
x{n,m} x를 n번이상 m번이하 반복한 문자를 찾습니다.
[xy] x, y중 하나를 찾습니다.
[^xy] x,y를 제외하고 문자 하나를 찾습니다.
[x-z] x~z사이의 문자중 하나를 찾습니다.
\^ ^(escape)를 식에 문자 자체로 찾습니다.
\b 문자와 공백사이의 문자를 찾습니다.
\B 문자와 공백사이가 아닌 값을 찾습니다.
\d 숫자를 찾습니다.
\D 숫자가 아닌 값을 찾습니다.
\s 공백 문자를 찾습니다.
\S 공백이 아닌 문자를 찾습니다.
\t Tab 문자를 찾습니다.
\v Vertical Tab 문자를 찾습니다.
\w 알파벳 + 숫자 + _를 찾습니다.
\W 알파벳 + 숫자 + _를 제외한 모든 문자를 찾습니다.
[:alnum:] 알파벳과 숫자를 찾습니다.
[:alpha:] 알파벳을 찾습니다.
[:digit:] 숫자를 찾습니다.
[:lower:] 알파벳 소문자를 찾습니다.
[:upper:] 알파벳 대문자를 찾습니다.
[:blank:] 탭과 공백을 찾습니다.
  • *?, +?, {n,}? 는 Greedy방식이 아닌 Lazy 방식(가능한 적은 수의 문자와 일치되도록)으로 동작합니다.
    • 예문 : internationalization
    • i\w+n 결과: internationalization
    • i\w+?n 결과: internationalization
  • 특정 문자열을 제외하고 검색하고 싶을 때: ^((?!<문자열>).)*$

  • \1: 이전 캡쳐 그룹의 n번째와 일치. 예를들어 \1은 첫번째, \2는 두번째 캡쳐 그룹과 일치
    • (\w)a\1 결과: hah dad bad dab gag gab
  • (?ABC): 캡처 그룹을 만들지 않고 여러 토큰을 그룹화 함
    • (?:ha)+ 결과: hahaha haa hah!
  • /정규식/gi 식으로 옵션(Option Modifier 또는 Flag)을 붙일 수 있습니다.
    • i: 대소문자 구분 없이
    • g: 모든 영역 적용