< 정규 표현식(Regular Expression) 기본 >


정규 표현식에서 사용하는 메타 문자(meta characters) : . ^ $ * + ? { } [ ] \ | ( )


* [ ] : 문자 클래스(character class)

 - [ 와 ] 사이의 문자들 중 한 개의 문자와 매치

 - [abc] == [a-c] ; 어떤 단어에 a,b,c 중 어느 하나라도 들어 있으면 매칭됨.

 - [0-5] == [012345] ; 0~5 숫자 중 어느 하나라도 일치하면 매칭됨.

 - [0-9] ; 숫자 전체를 의미 ; 모든 숫자와 매칭됨.

 - [a-zA-Z] : 알파벳 모두를 의미 ; 영어 단어는 모두 매칭됨.(대소문자 구분)


* ^ : 반대(Not) (문자열의 처음을 의미하기도 함.)

 - [^0-9] ; 숫자가 아닌 문자만 매칭됨.


* \ : 몇 가지 알파벳 앞에 붙어서 특수한 의미를 가지게 함.

 - \과 함께 사용되는 알파벳 : d(숫자), s(whitespace), w(word, 숫자포함), n(줄바꿈)

 - 알파벳이 대문자인 경우 일반적으로 각각 문자의 반대를 의미함.

 - \d : 숫자, [0-9]

 - \D : 숫자가 아닌 것, [^0-9]

 - \s : 공백문자(whitespace)

 - \S : 공백문자(whitespace)가 아닌 것과 매치

 - \w : 문자+숫자(alphanumeric), [a-zA-Z0-9]

 - \W : 문자+숫자(alphanumeric)가 아닌 문자, [^a-zA-Z0-9]

 - \n : 줄바꿈 문자(New line)


* Dot(.) : 줄바꿈 문자 \n을 제외한 모든 문자(숫자, 기호 등 포함)와 매칭.

 - re.DOTALL이라는 옵션 --> \n 문자와도 매칭

 - 예외 : [.] 는 모든 문자가 아니라 . 자체를 의미함.


* 반복

 - * : 어떤 문자의 우측에 사용, 0회 이상 반복 (약 2억번 정도까지), {0,}

 - + : 어떤 문자의 우측에 사용, 1회 이상 반복, {1,}

 - {m} : m회 반복

 - {m,n} : 어떤 문자의 우측에 사용, m ~ n 회 반복

 - 생략된 m은 0, 생략된 n은 무한대를 의미

 - {m,} : m회 이상 반복

 - {,n} : n회 이하 반복

 - ? : 있거나 없거나, 즉 0회 반복 또는 1회 반복, {0, 1}

 - *,+,?  등을 우선 사용하고, 그 외의 반복 패턴은 { } 를 사용

+ Recent posts