정규식 문법
문법 | 설명 | 예제 |
[[:space:]] | Whitespace (tab이나 space) | "A[[:space:]]B" (A B 혹은 A\tB) |
^ | 문자열 시작 패턴 | "^Hello" ("Hello"로 시작하는 문자열) |
$ | 문자열 끝 패턴 | "world$" ("world"로 끝나는 문자열) |
* | 0개 이상 (단독으로 쓰이면 의미가 없다) | "\d*" (숫자 0개 이상) |
+ | 1개 이상 (단독으로 쓰이면 의미가 없다) | "\d+" (숫자 1개 이상) |
. | 문자 1개 | "." (아무 문자 1개) |
.* | 문자 0개 이상 | ".*" (아무 문자 0개 이상) |
? | 문자 1개 혹은 0개 | "a?" (a 1개 or 0개) |
{num} | 문자 num개 | "\d{5}" (숫자 5개) |
{num1, num2} | 문자 num1개 이상, num2개 이하 | "\d{5,10}" (숫자 5개이상 10개 이하) |
\ | 특수 문자 표시 | "\*\?\+\." (*?+.) |
[] | 리스트 중 일치 | "[A-Z]{2,3}" (A-Z 중 2개 혹은 3개) |
[^] | 리스트 제외 | "[^TAB]" (탭을 제외한 모든 글자) |
| (Shell에서 사용할 때는 \|) | 또는 (OR) | "A|B" (A와 B) |
정규식 특수 문자
특수 문자 | 설명 |
\d | 숫자 1개 ([0-9]) |
\D | 숫자 이외 문자 1개 ([^0-9]) |
\s | 공백이나 탭 1개 |
\S | 공백이나 탭 이외 문자 1개 |
\w | 알파벳 1개 |
\W | 알파벳 이외의 문자 1개 |
파이썬에서 정규표현식 사용하기
import re
pattern = re.compile('^[\w.%+\-]+@[\w.\-]+\.[A-Za-z]{2,3}$') # for e-mail address
email = "blog@tistory.com"
result = pattern.match(email)
print(bool(result))
# True
print(result.start())
# 0
print(result.end())
# 16
print(result.span())
# (0, 16)
print(result.group())
# blog@tistory.com
유용한 예제
import re
pattern = re.compile('^(?:text|[0-9]|[1-9][0-9])$') # text OR 0-99 [2]
test_list = ["text", "texts", "0", "01", "10"]
for x in test_list:
print("{0}: {1}".format(x, bool(pattern.match(x))))
# text: True
# texts: False
# 0: True
# 01: False
# 10: True
유용한 사이트
RegExr: 정규표현식을 연습해볼 수 있다.
Reference
- Do it! 데이터 분석을 위한 판다스 입문
- https://stackoverflow.com/questions/12183223/regular-expression-to-allow-only-numbers-in-range-1-20
728x90
반응형
'Computer Science > Python' 카테고리의 다른 글
[Python] 파이썬 데이터 타입 (String, List, Dictionary) (0) | 2021.07.27 |
---|---|
[Python] CSV (TSV) 파일 읽기 및 쓰기 (0) | 2021.06.29 |
[Pandas] 판다스 기초 자료형 (DataFrame, Series) 및 관련 코드 (2) | 2021.03.15 |
[pip] 파이썬 패키지 관리 프로그램 pip (0) | 2021.03.15 |
[Python] matplotlib 기초 및 예제 (0) | 2021.02.09 |