[정규표현식] .*? 와 .* 의 차이점


사이트 긁어오기를 하는 방법에는 여러가지 기술이 있다. 그중에서 가장 깔끔한 방법이 정규표현식을 이용하는 방법이다. 이 정규표현식이라는 녀석이 참으로 오묘해서, 할때마다 머리가 어지럽다. 

사이트 긁어오기 할때 자주쓰이는 .*? 라는 녀석이 있다. 사람의 머리로 해석하기 참으로 애매한 녀석이다. 이아이와 해깔리는게 .* 이다. 

먼저, .*? 를 써보면 아래와 같은 결과가 나온다. 

<?
$rex="/\".*?\"/";
$txt='aaa "bbb" "ccc" "ddd"';
preg_match_all($rex,$txt,$o);
print_r($o);
?>

Array
(
    [0] => Array
        (
            [0] => "bbb"
            [1] => "ccc"
            [2] => "ddd"
        )

)

재미있는건, .*? 대신에 .* 를 쓰면 아래 결과 값이 나온다.

<?
$rex="/\".*\"/";
$txt='aaa "bbb" "ccc" "ddd"';
preg_match_all($rex,$txt,$o);
print_r($o);
?>
 
Array
(
    [0] => Array
        (
            [0] => "bbb" "ccc" "ddd"
        )

)
 

결과의 차이를 보면, 확실히 다르다.
각각 사이트 긁어오기를 할때, 사용할때가 분명히 있다. 주로 .*?를 쓰지만, 간혹 .*만 써야 할때도 있다. 

정규표현식을 파면 팔수록, 참으로 오묘하다. 



ps. 정규표현식을 쓴다고 정규직이 되는건 아닙니다. (이런걸 개그라고..)




사이트 파싱에 궁금한점이나, 의뢰는  로 주세요 ^^





 
Posted by 달을파는아이 달을파는아이

댓글을 달아주세요:: 네티켓은 기본, 스팸은 사절

  1. 2011.10.05 13:10 신고
    댓글 주소 수정/삭제 댓글
    정규직 ㅋㅋㅋㅋ
    역시 소장님 ㅎ
  2. 2011.10.15 16:14 신고
    댓글 주소 수정/삭제 댓글
    모르겠고.. 패쓰~


BLOG main image
멈추지 않으면 얼마나 천천히 가는지는 문제가 되지 않느니라 by 달을파는아이

나의 인생 시계 만들기 >>

카테고리

분류 전체보기 (429)
달을파는아이 (283)
머니머신 (125)
파싱의 추억 (20)
현미촌 현미국수면 (1)
Statistics Graph