[파이썬] 6. 정규 표현식

2021. 4. 12. 17:26데이터 분석/파이썬

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# Day_01_05_re.py
 
import re
 
db = '''3412    Bob 123
3412    Bob 123
3834  Jonny 333
1248   Kate 634
1423   Tony 567
2567  Peter 435
3567  Alice 535
1548  Kerry 534'''
 
# print(db)
# ''' ''' 설명
ns = re.findall(r'', db)
 
ns = re.findall(r'[0-9]+', db)
print(ns)
 
# 문제
# 이름만 찾아보세요.
 
# names = re.findall(r'[A-z]+', db) # bug
names = re.findall(r'[A-Za-z]+', db)
names = re.findall(r'[A-Z][a-z]+', db) # 별도의 대문자 1자리로 구분됨
print(names)
 
# 문제
# T로 시작하는 이름만 찾아보세요.
# T로 시작하지 않는 이름만 찾아보세요.
 
print(re.findall(r' T[a-z]+', db))
# print(re.findall(r'[^T]{a-z]+', db))  # bug why? 'ony'가 포함됨
print(re.findall(r'[A-SU-Z][a-z]+', db))
 
cs

 

['3412', '123', '3412', '123', '3834', '333', '1248', '634', '1423', '567', '2567', '435', '3567', '535', '1548', '534']
['Bob', 'Bob', 'Jonny', 'Kate', 'Tony', 'Peter', 'Alice', 'Kerry']
[' Tony']
['Bob', 'Bob', 'Jonny', 'Kate', 'Peter', 'Alice', 'Kerry']

 

정규표현식 참고:  ko.wikipedia.org/wiki/%EC%A0%95%EA%B7%9C_%ED%91%9C%ED%98%84%EC%8B%9D

 

정규 표현식 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 노랑색 강조 부분은 다음 정규식을 사용했을 때 매치된 것이다. 정규 표현식(正規表現式, 영어: regular expression, 간단히 regexp[1] 또는 regex, rational expression)[2][3] 또

ko.wikipedia.org

 

 

 

형광펜으로 체크한 4가지를 가장 많이 사용한다고 한다.

정규표현식은 파이썬이 아닌 다른 언어를 배우더라도 써먹을 수 있으므로 (수학처럼 서로 합의된 공통의 언어같은 것이다.) 외워두는 것이 좋다.

 

정규표현식 연습 사이트: regexcrossword.com/

 

Regex Crossword

A crossword puzzle game using regular expressions. Earn achievements completing puzzle challenges. Easy tutorials for people new to regular expressions.

regexcrossword.com

 

튜토리얼에서 예제를 풀다보면 정규표현식을 이론으로 배우는 것보다 이해가 쉽게 된다.

 

정답이면 Validate를 눌렀을 때 오른쪽 위에 초록색 체크 모양이 표시된다.