주소에서 동이름만 추출하고싶어요

주소에서 동이름만 추출하고싶어요

QA

주소에서 동이름만 추출하고싶어요

본문

인천 연수구 연수동 1111번지

울산 남구 달삼로 111로  (삼산동)

울산 남구 달동 333번지

 

이런식 데이터가 있는데 xxx동 이름만 출력하는 방법없을까요?

이 질문에 댓글 쓰기 :

답변 3

특수문자를 스페이스로 변경

탭 개행 스페이스_여러개 등등을 스페이스 하나로 변경하고

맨마지막에 스페이스를 더미로 붙여준다음

동[스페이스] 를 preg_match 하면 ... 될까요?

 


<?php
$arr = array(
    '연수동 1111번지',
    '인천 연수구 연수동            1111번지',
    '울산 남구 달삼로 111로  (삼산동)',
    '울산 남구 달동 333번지',
    '울산 남구 달동달 333번지',
    '울산 남구 달동달 333번지(달동)',
    '울산 남구 달동',
    '울산 남구 달동333번지',
);
echo '<pre>';
$pattern = array('/[^A-Za-z0-9가-힣\s]/', '/[\t\n\r\s]+/');
$replacement = array(' ', ' ');
foreach ($arr as $str) {
    $str = preg_replace($pattern, $replacement, $str.PHP_EOL);
    preg_match_all('/[^\s]+동[\s]/', $str, $matches);
    print_r($matches);
    echo trim($matches[0][0]).PHP_EOL;
    echo PHP_EOL;
}

데이터가 일정한 규칙이 있는게 아니라 힘들지안을까싶네요

동이라는 글자를 찾아서

동 앞으로 띄어쓰기 전까지 가져오도록 해보세요

원하는결과가 나올지는 모르겠네요

다음 예제를 참조해 보세요.


<?php
$data = "인천 연수구 연수동 1111번지
울산 남구 달삼로 111로  (삼산동)
울산 남구 달동 333번지";
$pattern = "#\s+\(?([^\s]+동)\)?#i";
preg_match_all($pattern, $data, $ms);
//var_dump($ms[1]);
foreach ($ms[1] as $v) {
    echo $v." ";
}
?>
답변을 작성하시기 전에 로그인 해주세요.
전체 13
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT