1. Regexpr cheat sheet

https://regexper.com/http://regex101.com 에서 정규표현식을 테스트 및 시각적으로 볼 수 있다.

문자 표현식

  • . : 임의의 한 문자
  • [abcd] : []안의 형식과 일치하는 한 문자
  • [1-9] : 1부터 9까지 범위내의 숫자를 뜻한다.
  • [a-zA-Z] : a부터 z까지의 하나의 소문자 및 대문자를 뜻한다.
  • [^] : ^이후의 괄호 안 문자를 제외한 한 문자이다.
  • \d : [0-9]
  • \D : [^0-9]
  • \s : [ tnrfv]
  • \S : [^ tnrfv]
  • \w : [a-zA-Z0-9_]
  • \W : [^a-zA-Z0-9_]

반복 횟수 지정

  • ? : 바로 앞의 문자가 0번이나 1번
  • * : 바로 앞의 문자가 0번 이상
  • + : 바로 앞의 문자가 1번 이상 반복
  • {1} : {}앞 문자가 1번 반복된다.
  • {3,} : {}앞 문자가 3번 이상 반복된다.
  • {,10} : {}앞 문자가 10번 이하로 반복된다.

메타문자

  • | : 보기중 하나
  • ^ : 문자열의 시작
  • $ : 문자열의 끝

그룹 지정 (capturing / non-capturing)

  • (ab){2} : ab를 하나의 그룹으로 보고 abab에 매칭된다.
  • (ab){2} (\1) : 《abab ab》에 매칭된다. 괄호는 값을 저장한다. 캡처링이라는 특징을 갖는다. 이는 \1 ~ \9를 사용하여 항목을 검색할 수 있다.
  • (?:pattern) : 패턴의 일부가 매칭되는가? data(?:apple|kiwi)은 dataapple 또는 datakiwi에 매칭된다. (캡처링하지 않는다.)
  • (?=p1)(?=p2) : look-ahead 방식으로 미리 검색해서 패턴에 일치할 경우만 계속 검색을 진행할때 사용한다. 문자열에 p1 패턴이 왔는가? 왔다면 p2 패턴이 왔는가? 동시에 여러개의 패턴을 적용할 수 있다. positive lookahead 방식이다. ex) 문자열 조사에 앞서 〈_’가 존재한다면 진행하지 않음 ^(?=[^_])[0-9a-zA-Z_]+@[a-zA-Z]+.[a-zA-Z]+
  • (?!p1)(?!p2) : look-ahead 방식으로 미리 검색해서 패턴에 일치하지 않을 경우만 계속 검색을 진행할때 사용한다. 문자열에 p1 패턴이 아니여야하고 p2 패턴이 아니여야 한다. negative lookahead 방식이다. ex) 문자열 조사에 앞서 〈_’가 존재한다면 진행하지 않음 ^(?![_])[0-9a-zA-Z_]+@[a-zA-Z]+.[a-zA-Z]+