-
[정규표현식] .*? 와 .* 의 차이점파싱의 추억 2011. 9. 2. 11:38
사이트 긁어오기를 하는 방법에는 여러가지 기술이 있다. 그중에서 가장 깔끔한 방법이 정규표현식을 이용하는 방법이다. 이 정규표현식이라는 녀석이 참으로 오묘해서, 할때마다 머리가 어지럽다.
사이트 긁어오기 할때 자주쓰이는 .*? 라는 녀석이 있다. 사람의 머리로 해석하기 참으로 애매한 녀석이다. 이아이와 해깔리는게 .* 이다.
먼저, .*? 를 써보면 아래와 같은 결과가 나온다.
<?$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. 정규표현식을 쓴다고 정규직이 되는건 아닙니다. (이런걸 개그라고..)
사이트 파싱에 궁금한점이나, 의뢰는 로 주세요 ^^
'파싱의 추억' 카테고리의 다른 글
[사이트긁어오기 강좌#1] php와 snoopy로 로그인 처리 (3) 2012.02.21 사이트 긁어오기로 할 수 있는 6가지 놀라운 일 (10) 2011.11.18 죄송합니다. 요청하신 검색이 원활하게 수행되지 못하고 있습니다.. 라는 오류가 뜰때는? (3) 2011.02.18 네이버 블로그에서 티스토리로 이사하는 3가지 방법 (24) 2010.09.16 7만원으로 집에서 리눅스 웹서버를 돌려볼까? (28) 2010.04.20