Regular Expression

1 minute read

Regular Expression

  • 특정한 규칙을 가진 문자열의 집합을 표현하기 위해 쓰이는 형식 언어

  • 정규식에서 사용되는 기호를 Meta 문자라고 함.

Meta Characters

  • ^ : 문자열의 시작을 표현
    • ^abc : abc로 시작하는 문자열 (abc, abcde, …)
  • $ : 문자열의 종료를 표현
    • man$ : man으로 끝나는 문자열 (man, human)
  • . : 개행을 제외한 임의의 한 문자
    • ex) Hello, World!
  • [] : 괄호 안의 문자를 찾음
    • [abc] : 문자열에서 a, b, c를 찾음 (human, avoc ado)
  • [^] : 괄호 안의 문자를 제외한 문자를 찾음
    • [^aeiou] : 문자열에서 a, e, i, o, u를 제외한 문자를 찾음 (human, avocado)
  • [-] : 해당 범위의 문자를 찾음
    • [a-z] : 문자열에서 a~z의 문자를 찾음 (My n a m e i s De t e g iCE.)
  • | : OR
  • () : 여러 패턴을 같이 사용하기 위한 그룹화

Repetition Characters

  • {n,m} : 앞 문자가 n개 이상 m개 이하
    • [0-9]{1,2} : 숫자가 1개 이상 2개 이하 있음 (20 19Dec5Thursday)
    • [a-z]{1,2}[0-9]{1,2} : (2019Dec5Thursday)
  • {n,} : 앞 문자가 n개 이상
    • [A-Za-z]{5,} : 영문자가 5개 이상 (2019Dec5Thursday)
  • {n} : 앞 문자가 정확히 n개, {n,n}과 동일
    • [0-8]{2} : 0부터 8까지 숫자가 2개 연속 (Samsung 931st Day Stock : 3958 201)
  • ? : 앞 문자가 없거나 하나 있음, {0,1}과 동일
    • ho? : h 뒤에 o가 있거나 하나 있음 (I have 1 house and 2 buildings.)
  • + : 앞 문자가 하나 이상, {1,}과 동일
    • zz+ : z 뒤에 z가 하나 이상 있음 (fluzy, fluzzy, fluzzzzzzy)
    • ad+ : a 뒤에 d가 하나 이상 있음 (ad add adaaaadddd ad)
    • [0-9][0-9]+ : 숫자 뒤에 숫자가 하나 이상 있음 (03da98df8g4532)
  • * : 앞 문자가 0개 이상, {0,}과 동일
    • [0-9][a-z]* : 숫자 뒤에 소문자가 0개 이상 있음 (0 3da 9 8df 8g 4 5)
    • [a-z]*[0-9]+ : 소문자가 0개 이상 뒤에 숫자가 1개 이상 있음 (Class94SangwookLee094)

Escape Characters

이스케이프의 경우 대문자로 작성시 그 반대를 찾음

  • \s : 공백 문자 (\r, \n, \t, \f, \v, ) 를 찾음
  • \b : 문자 사이의 공백 문자를 찾음
  • \d : [0-9]와 동일
    • ex) I have 1 house and 2 buildings.
  • \t : 탭 문자
  • \w : 단어 영문자 + 숫자 + 밑줄 [0-9a-zA-Z_]와 동일

Practice Websites

Comments