정규식을 이용한 숫자 추출
참고문서 : 점프 투 파이썬 07-02 정규 표현식 시작하기
파이썬에서 정규표현식을 사용할때 re모듈을 통해 사용할 수 있습니다. 사용 방법은 간단합니다. re 모듈은 파이썬을 설치할 때 자동으로 같이 설치되므로, 별도의 설치가 필요 없이 그대로 import 해서 사용하면 됩니다.
import re
정규식을 사용하여 문자열을 검색할 수 있는 4가지 메서드를 지원하는데, 그 4가지의 이름과 목적은 다음과 같습니다. | Method |목적 |
|–|–|
| match()| 문자열이 처음부터 정규식과 매치되는지 조사합니다. | | search()| 문자열 전체를 검색하여 정규식과 매치되는지를 조사합니다. | | findall()| 정규식과 매치되는 모든 문자열(substring)을 리스트의 형태로 돌려줍니다. | | finditer()| 정규식과 매치되는 모든 문자열들을 반복가능한 객체의 형태로 돌려줍니다. |
여기서 숫자를 추출하기 위해서 사용할 메서드는 findall()입니다.
예제를 통해 findall() 메소드를 이용하여 어떻게 문자열에서 숫자를 추출하는지 확인하도록 하겠습니다.
>> import re
>> p = re.compile("\d*\.?\d+")
>> p.findall("python3")
['3']
>> p.findall("python3.8")
['3.8']
위 예제에서 사용한 정규식은 “\d*.?\d+” 으로, \d는 숫자를, *는 0번 이상의 반복을, Dot(.)은 모든 문자와의 매치를, ?는 1번아니면0번을, +는 1번 이상의 반복을 의미합니다.
위 기호들에 대한 자세한 내용은 참고자료를 확인하시면 되고, 간단하게 말하자면 저 정규식은 숫자시작-숫자끝까지를 추출하는 것이기 때문에 정수와 실수 모두 가져올 수 있다는 장점이 있습니다.
정수만 가져오거나, 숫자를 하나씩 끊어 가지고 오려면 정규식을 용도에 맞게 수정하여 사용하시면 됩니다.