Python - 문자열에서 숫자만 추출하는 방법

By JS | Last updated: June 29, 2021

String에서 숫자(Integer)만 추출하는 방법을 소개합니다.

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

re.sub()의 Syntax는 다음과 같습니다.

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

re.sub(pattern, repl, string)

다음과 같이 sub()를 사용하여 문자열에서 숫자가 아닌 문자를 모두 제거하고 숫자로 구성된 문자열을 만들 수 있습니다.

import re

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

Output:

12342233

연속된 숫자들을 추출하여 List로 리턴 : re.findall()

re.findall(pattern, string)은 string에서 pattern에 해당하는 내용들을 찾아서 리스트로 리턴합니다.

r'\d+'는 1회 이상 반복되는 숫자들에 대한 패턴을 의미합니다.

다음과 같이 연속된 숫자들을 하나의 Integer로 추출합니다.

import re

string = 'aaa1234, ^&*2233pp'
numbers = re.findall(r'\d+', string)
print(numbers)

Output:

['1234', '2233']

숫자 추출 및 낱개로 분리하여 List로 리턴 : re.findall()

r'\d'는 1개의 숫자를 의미합니다.

1개 이상의 반복을 의미하는 +가 제외된 패턴으로 패턴을 찾으면, 숫자 1개 단위로 추출되어 리스트에 저장됩니다.

import re

string = 'aaa1234, ^&*2233pp'
numbers = re.findall(r'\d', string)
print(numbers)

Output:

['1', '2', '3', '4', '2', '2', '3', '3']

References

Related Posts

댓글을 보거나 쓰려면 이 버튼을 눌러주세요.
codechachaCopyright ©2019 codechacha