SeouliteLab

[Python/파이썬] 문자열에서 숫자만 추출하는 방법 본문

프로그래밍

[Python/파이썬] 문자열에서 숫자만 추출하는 방법

Seoulite Lab 2024. 3. 5. 08:23

문자열에서 숫자를 추출하는 것은 데이터 처리 및 분석에서 자주 사용됩니다. Python에서는 다양한 방법을 사용하여 문자열에서 숫자만 추출할 수 있습니다. 이번 글에서는 문자열에서 숫자를 추출하는 여러 가지 방법을 살펴보겠습니다.

1. 숫자만 추출하여 새로운 문자열 생성

문자열에서 숫자만 추출하여 새로운 문자열을 생성하는 방법입니다. 이를 위해 정규표현식을 사용할 수 있습니다. \d는 숫자를 나타내는 정규표현식입니다.

import re

text = "문자열 123에서 숫자를 추출합니다."
numbers = re.findall(r'\d+', text)
result = ''.join(numbers)

print(result)  # 출력 결과: 123

2. 숫자만 추출하여 리스트로 변환

문자열에서 숫자만 추출하여 리스트로 변환하는 방법입니다. 이를 위해 리스트 컴프리헨션을 사용할 수 있습니다.

text = "문자열 123에서 숫자를 추출합니다."
numbers = [int(num) for num in text if num.isdigit()]

print(numbers)  # 출력 결과: [1, 2, 3]

3. 숫자만 추출하여 정수로 변환

문자열에서 숫자만 추출하여 정수로 변환하는 방법입니다. 위의 예제에서 리스트로 추출한 숫자를 정수로 변환할 수 있습니다.

text = "문자열 123에서 숫자를 추출합니다."
numbers = [int(num) for num in text if num.isdigit()]

result = int(''.join(map(str, numbers)))

print(result)  # 출력 결과: 123

4. 숫자만 추출하여 합계 계산

문자열에서 숫자만 추출하여 그 합계를 계산하는 방법입니다.

text = "문자열 123에서 숫자를 추출합니다."
numbers = [int(num) for num in text if num.isdigit()]

result = sum(numbers)

print(result)  # 출력 결과: 6

5. 숫자가 연속된 경우 그룹화하여 추출

연속된 숫자가 있는 경우 이를 그룹화하여 추출할 수 있습니다.

text = "문자열 1234567890에서 숫자를 추출합니다."
numbers = re.findall(r'\d{2,}', text)

print(numbers)  # 출력 결과: ['1234567890']

6. 숫자가 아닌 문자를 기준으로 분리하여 추출

숫자가 아닌 문자를 기준으로 분리하여 추출할 수 있습니다.

import re

text = "문자열 123-456-7890에서 전화번호를 추출합니다."
numbers = re.split(r'\D+', text)

print(numbers)  # 출력 결과: ['', '123', '456', '7890', '']