< 정규 표현식(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}
- *,+,? 등을 우선 사용하고, 그 외의 반복 패턴은 { } 를 사용
'프로그래밍(Programming) > 정규표현식(Regular Expression)' 카테고리의 다른 글
파이썬(Python) 정규 표현식(regular expression) 사용을 위한 re 모듈 (0) | 2018.08.21 |
---|