Computer Science/Python

[정규표현식] 파이썬에서 정규표현식 사용하기

2021. 4. 15. 18:09

정규식 문법

문법 설명 예제
[[: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: 정규표현식을 연습해볼 수 있다.

regexr.com/

 

RegExr: Learn, Build, & Test RegEx

RegExr is an online tool to learn, build, & test Regular Expressions (RegEx / RegExp).

regexr.com

 

 

Reference

  1. Do it! 데이터 분석을 위한 판다스 입문
  2. https://stackoverflow.com/questions/12183223/regular-expression-to-allow-only-numbers-in-range-1-20

 

 

728x90
반응형