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]+