본문 바로가기

기타

[regexp] 정규표현식 정리

Regexp

특정한 규칙을 가진 문자열의 집합을 표현하는 데 사용하는 형식 언어

※ 기능들의 정의를 자세하게 설명하기 보다는 기능들을 활용해보는 방식으로 작성했습니다.(매우 주관적)

 

아래 사이트에서 'sample text'를 활용해서 실습할 수 있습니다.

 

RegExr: Learn, Build, & Test RegEx

RegExr is an online tool to learn, build, & test Regular Expressions (RegEx / RegExp).

regexr.com

# sample text

hello world
hello  world
hello, world
Hello World

hello world hello

hello
hallo
hollo
heallo
yellow

 

일반 문자열 찾아보기

/hello/gm
/hello world/gm
/Hello/gm
/Hello/gim
  • 슬래쉬(/) 사이에 위치한 문자를 찾을 수 있다.
  • g : 전역을 탐색한다.
  • i : 대소문자 구분하지 않는다.
  • m : 여러 줄 걸쳐서 찾는다.

 

문자열의 처음과 끝 내용 찾아보기

/^hello/gm
/hello$/gm
  • ^ : 문자열 처음에 위치한 해당 글자를 찾을때 사용
  • $ : 문자열 마지막에 위치한 해당 글자를 찾을때 사용

 

모든 문자 찾아보기

/./gm
/...../gm
  • 점(.)의 갯수에 따라 길이를 결정하여 문자를 탐색한다.
  • 점 1개는 한 글자 단위로 탐색
  • 점 5개는 다섯 글자 단위로 탐색

 

대괄호 활용하여 찾아보기

/h[eay]llo/gm
/h[ea]l../gm

/h[a-f]llo/gm
/[a-zA-Z0-9]/gm
/[^a-zA-Z0-9]/gm

/h[^ae]llo/gm
  • 대괄호 안에서 단순히 문자만 작성하게 되면 해당 문자가 포함된 문자열을 찾는다.
    • 'h[eay]llo'인 경우 'hello', 'hallo', 'hyllo'에 해당하는 문자를 찾는다.
    • 'h[ea]l..'인 경우 문자열 길이가 5이면서 'h' 다음 문자로 'e'나 'a'가 오는 문자를 찾는다.
  • 대괄호 안에서 '-'를 사용하면 범위를 지정하는 것이다.
    • 'h[a-f]llo'인 경우 'hallo', 'hbllo', 'hcllo', 'hdllo', 'hello', 'hfllo'에 해당하는 문자를 찾는다.
    • '/[a-zA-Z0-9]/gm'인 경우 대, 소문자 알파벳과 숫자로 이루어진 문자를 찾는다.
    • '/[^a-zA-Z0-9]/gm'인 경우 위의 경우와 반대(대, 소문자 알파벳과 숫자로 안 이루어진 문자를 찾음)
    • '/h[^ae]llo/gm'인 경우 'hallo', 'hello'가 아니면서 해당 위치에 h, l, l, o가 포함되어 있는 문자를 찾는다.