1. 정규표현식이란?
- 정규표현식은 특정한 조건의 문자를 검색하거나 치환하는 과정을 간단하게 할 수 있도록 도와준다. 처음 보면 익숙하지 않은 문법에 당황할 수 있고, 직접 정규표현식을 작성하더라도 나중에 다시 보면 내가 짠 정규표현식을 이해하기 어려울 때도 있다... 하지만 문자열 처리를 할 때는 없어서는 안 되는 꼭 필요한 형식 언어이다:)
- 웹 프로그래밍을 할 때, url을 동적으로 지정할 때도 사용되며 웹 크롤링에서 파싱할 때도 항상 사용된다. 문자열이 많이 사용되는 웹 프로그래밍 관련 부분에서는 정규표현식이 없으면 문자열 처리가 매우 복잡해지므로 필수적으로 사용된다
- 대문자와 소문자를 구분하며 뛰어 쓰기를 구분한다
2. 메타 문자
- 정규표현식에서 특수한 의미를 갖는 특수문자를 메타 문자라 한다.
ex) ^, $, ., [], |, ?, +, * 등등
- ^ : ^ 뒤에 오는 문자로 시작되는 문자열을 지정
- $ : $ 앞에 오는 문자로 끝나는 문자열을 지정
- [] : 대괄호 안에 있는 문자를 지정, 이때 대괄호는 하나의 문자를 나타낸다
- | : or을 의미
- ? : ? 앞에 오는 문자가 0개 또는 1개 존재
- * : * 앞에 오는 문자가 0개 이상 존재
- + : + 앞에 오는 문자가 1개 이상 존재
- . : 한 개의 문자를 나타냄(와일드카드), 모든 문자를 나타낸다
- {n, m} : 중괄호 앞의 문자가 n번 이상 m번 이하 존재
- {0, 1} : ?와 동일한 의미
- {0,} : *와 동일한 의미
- {1,} : +와 동일한 의미
- {n} : 앞의 문자가 정확히 n번 나타남
- \w : word를 의미. 소문자, 대문자, 숫자, _(언더바)를 지칭한다
- \W : word가 아닌 것을 의미. 특수문자, 공백, 콜론, . 을 지칭한다
- \d : digit을 의미. 숫자를 지칭한다
- \D : digit이 아닌 모든 것을 지칭한다
- \A : 문자열의 시작점을 의미한다
- \Z : 문자열의 끝을 의미한다
- 위의 메타 문자만 알아도 대부분의 정규 표현식을 표현할 수 있다
3. 예제
1) ^
2) $
3) []
4) [-]
5) | (or)
6) ?
7) *
8) +
4. 참고사이트
1) regex101 : 정규표현식을 연습할 수 있는 사이트이다. REGULAR EXPRESSION에 정규 표현식을 적어주고 TEST STRING에 예문을 적으면 TEST STRING에 있는 문자열을 정규표현식으로 찾을 수 있다. 여러 색으로 구분되고 인터페이스가 깔끔해 이용하기 편하다
2. ZVON : 정규표현식에 대한 간단한 예제를 제공하는 사이트로 페이지 순서대로 따라가며 배우면 기초부터 배울 수 있다. 위에 regex101을 이용해 예제를 연습하기 좋다.
3. 생활코딩님 블로그 : ZVON에 나와있는 예제들을 생활코딩님이 직접 설명해주신 동영상이다. 게시된지 오래됐지만 처음 배울 때 많은 도움이 됐고 친절하게 설명해주셔서 처음 하는 사람도 쉽게 이해할 수 있다.
'Python > Syntax' 카테고리의 다른 글
[Python] 한 줄에 두 개의 정수 입력 받기 (input, map) (0) | 2020.09.08 |
---|---|
[Python] split (0) | 2020.09.08 |
[Python] 가상환경 설정 (0) | 2020.09.04 |
[Python]Sort와 Sorted (0) | 2020.07.20 |
[Python] extend와 append (0) | 2020.07.19 |