본문 바로가기
Data Science/Python

맨날 헷갈리는 정규표현식 (문자열에서 숫자만 추출)

by 로떡 2022. 10. 15.

모든 숫자들을 1개의 문자열로 추출 : re.sub()

sub()는 string에서 pattern과 일치하는 문자들을 repl로 교체합니다.

re.sub(pattern, repl, string)
import re

string = 'aaa1234, ^&*2233pp'
numbers = re.sub(r'[^0-9]', '', string)
print(numbers)

output : 12342233

 

[^0-9] : 숫자가 아닌 것을 찾음

[0-9] : 숫자를 찾음

 

# 전화번호 *로 치환 예제

import re

text = '''010-1234-5678 Kim
011-1234-5678 Lee
016-1234-5678 Han'''

text_mod = re.sub('^[0-9]{3}-[0-9]{4}-[0-9]{4}', '***-****-****", text)

print(text_mod)

***-****-**** Kim

011-1234-5678 Lee

016-1234-5678 Han

# 전화번호 *로 치환 예제 - 모든 줄 치환

import re

text = '''010-1234-5678 Kim
011-1234-5678 Lee
016-1234-5678 Han'''

text_mod = re.sub('^[0-9]{3}-[0-9]{4}-[0-9]{4}', '***-****-****", text, flags = re.MULTILINE)

print(text_mod)

***-****-**** Kim

***-****-**** Lee

***-****-**** Han

flags = re.MULTILINE