파이썬 정규식으로 지번주소, 도로명주소를 찾아 리턴하는 문제입니다.

조회수 4988회

예를 들어 '나는 서울특별시 용산구 삼성동 338에 살아요'라는 문장에서

'서울특별시 용산구 삼성동 338' 을 찾아내는 문제를 해결하려고 합니다.

도로명주소로도 찾을수 있어야 하고, 주소 일부가 빈 경우도 찾아야 해서 고민입니다.

저는 도로명주소, 지번주소를 동시에 검색하려고

regex = r'(\w+[시,도]\s*)?(\w+[구,시,군]\s*)?(\w+[구,시]\s*)?(\w+[면,읍]\s*)?(\w+\d*\w*[동,리,로,길]\s*)?(\w*\d+-?\d*)?'

의 형식으로 regex 변수를 입력했고,

test = '나는 서울특별시 용산구 삼성동 338에 살아요 '

를 입력한 뒤에

x = re.search(regex, test) x.group() 하면

''이 결과로 나옵니다.

test = '서울특별시 용산구 삼성동 338에 살아요'

로 진행하면, 주소를 정확히 찾습니다.

제 생각에는 regex의 정규식이 모두 ?로 옵셔널하게 주어져있어서 가장먼저 찾는 값이 공백이게 되는 것 같은데, 이를 배제할 방법을 알 수가 없습니다. 어떻게 해야할까요?

1 답변

  • 그런 다양한 경우를 커버해야 한다면 검색엔진을 활용하는 편이 나아보입니다.

    조사등을 분리해야 될 듯 싶은데...그럴경우 형태소 분석을 해야 합니다

    나는 서울특별시의 용산구 삼성동 338번지에 살아요 라고 했을시 서울특별시'의' 라던가 338번지'에' 등을 제거하고 명사위주로 검색어를 추출해야 합니다.

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)