파이썬 정규식으로 지번주소, 도로명주소를 찾아 리턴하는 문제입니다.
조회수 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의 정규식이 모두 ?로 옵셔널하게 주어져있어서 가장먼저 찾는 값이 공백이게 되는 것 같은데, 이를 배제할 방법을 알 수가 없습니다. 어떻게 해야할까요?
댓글 입력