아미(아름다운미소)

python 정규 표현식 (Regular Expression) 본문

랭귀지/python

python 정규 표현식 (Regular Expression)

유키공 2019. 5. 13. 14:16

정규 표현식이용 전화번호 발췌하기


정규 표현식은 단순한 리터럴 문자열을 검색하는 것보다 훨씬 많은 기능들을 제공하는데, 즉 특정 패턴의 문자열을 검색하는데 매우 유용합니다. 예로 웹페이지나 텍스트에서 특정 패턴의 전화번호를 발췌하는 기능에 대해 알아보면 전화번호의 패턴은 032-5555-6666 와 같이 3자리-3자리-4자리로 구성되어 있다고 가정시 정규식에서 숫자를 의미하는 기호로 \d 를 사용합니다. 여기서 d는 digit 을 의미하고 0 ~ 9 까지의 숫자 중 아무 숫자나 될 수 있습니다. 따라서, 위 전화번호 패턴을 정규식으로 표현하면 \d\d\d-\d\d\d-\d\d\d\d 와 같이 될 수 있습니다. 아래는 이러한 패턴을 사용하여 전화번호를 발췌하는 예입니다.
import re
 
text = "문의사항이 있으면 032-5555-6666 으로 연락주시기 바랍니다."
 
regex = re.compile(r'\d\d\d-\d\d\d-\d\d\d\d')
matchobj = regex.search(text)
phonenumber = matchobj.group()
print(phonenumber)    
위 예제에서 re.compile(전화번호패턴) 함수는 전화번호 패턴에 갖는 정규식 객체를 리턴하게 되고, search()를 사용하여 첫번째 전화번호 패턴에 매칭되는 번호를 리턴합니다. 그리고 이로부터 실제 전화번호를 얻기 위해서는 group() 메서드를 사용하였습니다.
Comments