문자열에서 숫자를 추출하는 다양한 방법을 소개합니다.
1. re.sub() 함수로 숫자 추출
re.sub()
는 아래와 같이 3개 인자를 받으며, string에서 pattern과 일치하는 부분을 repl로 교체합니다.
re.sub(pattern, repl, string)
re.sub()
를 이용하면, 패턴으로 숫자가 아닌 문자들을 찾아서 ''
으로 변경하여 제거하여 숫자만 남길 수 있습니다. 이런 방식으로 숫자만 추출할 수 있습니다.
import re
string = 'abc1234, ^&*2233ppwq'
numbers = re.sub(r'[^0-9]', '', string)
print(numbers)
Output:
12342233
2. re.findall() 함수로 연속적인 숫자 추출
re.findall(pattern, string)
은 문자열에서 pattern에 해당하는 내용을 리스트에 추가하고, 그 리스트를 리턴합니다.
이 함수를 이용하면 연속적인 숫자만 추출할 수 있습니다.
import re
string = 'abc1234, ^&*2233ppwq'
numbers = re.findall(r'\d+', string)
print(numbers)
Output:
['1234', '2233']
3. re.findall() 함수로 숫자 낱개로 추출
r'\d'
패턴은 숫자 1개를 의미합니다. 이 패턴을 사용하면 숫자 1개씩 찾아서 리스트에 추가하게 됩니다.
import re
string = 'abc1234, ^&*2233ppwq'
numbers = re.findall(r'\d', string)
print(numbers)
Output:
['1', '2', '3', '4', '2', '2', '3', '3']