정규표현식 공부

IngCoding·2022년 2월 24일
0

파이썬 #3 프로젝트

목록 보기
2/20

정규표현식

위 링크의 문제를 정리해봤어요.

import re

1. [0-9]+ : 연속된 숫자 매칭

regex = '[0-9]+'

search_target = 'abc123xyz'

# 정규표현식과 일치하는 부분을 모두 찾아주는 파이썬 코드입니다.
import re
result = re.findall(regex, search_target)
print(result)

2. . : 임의의 문자 추출하기

. : 임의의 문자 하나

regex = '...\.'

search_target = 'cat.'

# 정규표현식과 일치하는 부분을 모두 찾아주는 파이썬 코드입니다.
import re
result = re.findall(regex, search_target)
print(result)

regex = '...\.'

search_target = '896.'

# 정규표현식과 일치하는 부분을 모두 찾아주는 파이썬 코드입니다.
import re
result = re.findall(regex, search_target)
print(result)

#마지막엔 .이 들어와야 한다.

3. [abc] : 특정 문자 추출

regex = '[cmf]an'

search_target = 'can, man, fan, dan, ran, pan'

# 정규표현식과 일치하는 부분을 모두 찾아주는 파이썬 코드입니다.
import re
result = re.findall(regex, search_target)
print(result)
regex = '[^drp]an'

search_target = 'can, man, fan, dan, ran, pan'

# 정규표현식과 일치하는 부분을 모두 찾아주는 파이썬 코드입니다.
import re
result = re.findall(regex, search_target)
print(result)

 # [^drp]: drp가 아닌 chr

4. [abc] : 특정 문자 추출(2)

regex = '[hd]og'

search_target = 'hog, dog, bog'

# 정규표현식과 일치하는 부분을 모두 찾아주는 파이썬 코드입니다.
import re
result = re.findall(regex, search_target)
print(result)

5. [x-y] : 문자 범위를 이용한 추출

regex = '[A-C][n-p][a-c]'

search_target = 'Ana, Bob, Cpc, aax, bby, ccz'

# 정규표현식과 일치하는 부분을 모두 찾아주는 파이썬 코드입니다.
import re
result = re.findall(regex, search_target)
print(result)

6. {m,n} : 문자 갯수 범위를 이용한 추출 (1)

regex = 'waz{3,5}up'

search_target = 'wazzzzzup, wazzzzup, wazzzup, wazup'

# 정규표현식과 일치하는 부분을 모두 찾아주는 파이썬 코드입니다.
import re
result = re.findall(regex, search_target)
print(result)

# {3,5}: 3~5번 반복  c.f. {3,} 3번 이상 반복

7. {m,n} : 문자 갯수 범위를 이용한 추출 (2)

regex = 'a+b*c+'

search_target = 'aaaabcc, aabbbbc, aacc, a'

# 정규표현식과 일치하는 부분을 모두 찾아주는 파이썬 코드입니다.
import re
result = re.findall(regex, search_target)
print(result)

# Hint : +(한번이상) *(0번 이상)
regex = 'a{2,4}b{0,4}c{1,2}'

search_target = 'aaaabcc, aabbbbc, aacc, a'

# 정규표현식과 일치하는 부분을 모두 찾아주는 파이썬 코드입니다.
import re
result = re.findall(regex, search_target)
print(result)

8. \ : 특수 문자는 \를 이용해서 문자 그대로 추출(escape)

regex = '\d+ files? found\?'

search_target = '1 file found?, 2 files found?, 24 files found?, No files found.'

# 정규표현식과 일치하는 부분을 모두 찾아주는 파이썬 코드입니다.
import re
result = re.findall(regex, search_target)
print(result)

# ?(0,1번) \? (물음표그대로)

9. 숫자, 점(.), 공백, 영어 소문자가 섞인 문자 추출하기

regex = '\d\.\s+[a-z]+'

search_target = "'1. abc', '2.    abc', '3.       abc', '4.abc'"

# 정규표현식과 일치하는 부분을 모두 찾아주는 파이썬 코드입니다.
import re
result = re.findall(regex, search_target)
print(result)

# \s+ 공백 한번이상

10. ^...S : 문자열의 시작(^)과 끝($) 지정해서 문자 추출

regex = '^Mission: successful$'

search_target = "Mission: successful"

# 정규표현식과 일치하는 부분을 모두 찾아주는 파이썬 코드입니다.
import re
result = re.findall(regex, search_target)
print(result)
regex = '^Mission: successful$'

search_target = 'Last Mission: unsuccessful'

# 정규표현식과 일치하는 부분을 모두 찾아주는 파이썬 코드입니다.
import re
result = re.findall(regex, search_target)
print(result)

11. (…) : Capture Group

regex = '^(file.+)\.pdf$'

search_target = 'file_record_transcript.pdf'

# re.match() 함수로 group화
m = re.match(regex, search_target)
# 선택한 그룹
m.group(1)
regex = '^(file.+)\.pdf$'

search_target = 'file_07241999.pdf'

# re.match() 함수로 group화
m = re.match(regex, search_target)
m
# 추출된 전체 데이터
m[0]
# 선택한 그룹
m.group(1)

# (a)(b) : 앞 (a)group1, (b)group2 and 전체 문자열은 group0
    # 이 예제의 경우 앞에 ()만 있으므로 gorup2[(b)]는 없다.

12. (a(bc)) : Capture - Sub-group

regex = '(\w+ (\d+))'

search_target = 'Jan 2021, we participated in party'

# re.match() 함수로 group화
m = re.match(regex, search_target)
# 선택한 그룹
print(m.group(0))
print(m.group(1))
print(m.group(2))

13. Capture all

regex = '(\d+)x(\d+)'

search_target = '1280x720'

# re.match() 함수로 group화
m = re.match(regex, search_target)
# 선택한 그룹
print(m.group(0))
print(m.group(1))
print(m.group(2))

14. (abc|def) : Matches abc or def

regex = 'I love (cats|dogs)'

search_target = 'I love cats hahaha'

# re.match() 함수로 group화
m = re.match(regex, search_target)
m[0]
# 선택한 그룹
print(m.group(0))
print(m.group(1))

다음 단계 링크

profile
Data & PM

0개의 댓글