2010-01-01 3 views
0

나는 MagpieRSS를 사용하여 Craigslist 피드를 구문 분석하고 있습니다. 은 "제목"필드는 다음과 같습니다 Craigslist 구문 분석의 MySQL 저장 관련 문제

***

은 모든 수량의 모든 BRAND NEW 블랙 베리를 구입 BOLD ~ JAVELLIN ~ ONYX (가요) $ 100000

내가

if(preg_match("/\(*\)*\d+$/", $title, $matches)) 
을 사용하고 있습니다 가격을 알아내는

. 내가 실수하지 않는다면 $matches[0]에 가격이 있어야합니다. 그러나, 그것을 내 MySQL 테이블 (DOUBLE 데이터 유형)에 넣으면 100으로 표시됩니다. $ 다음에 처음 3 자리 숫자 만있는 것으로 보입니다. 나는 웹상의 모든 체커 preg_match을 통해 이것을 실행했지만, nada.

의견이 있으십니까?

+1

이것은 디버깅의 기본적인 경우입니다. 행을 삽입하는 전체 생성 쿼리는 어떻게 생겼습니까? –

+0

DECIMAL MySQL 데이터 유형을 사용하여 가격을 저장하십시오. 귀하의 정규식은 좋지는 않지만 작동해야합니다. – Sergei

+0

INSERT INTO resultset (search_id, title, price, source_url) VALUE ("1", "*** 모든 QUICTYTY BOLD ~ JAVELLIN ~ ONYX (첼시) $ 100000", "100,000.00", "http : /newyork.craigslist.org/mnh/ele/1532363555.html ") – Shamoon

답변

1

정규식이 작동하지 않는 것 같습니다. 다음 제목을 감안할 때 :

***

은 모든 수량의 모든 BRAND NEW 블랙 베리를 구입 BOLD ~ JAVELLIN ~ ONYX (가요) $ 100,000

그냥 100000 값을 얻기 위해 원하는 경우, I 'd 사용 :

/\$(\d+)$/ 
+0

문자열에 다른 $가 있으면 문제가 생깁니다. – Shamoon

+0

이것은 문자열의 끝에있는 달러 기호 다음의 모든 숫자와 일치합니다. 나머지 타이틀에 대해 충분히 알지 못하면 얼마나 신뢰할 수 있는지 말할 수 없습니다. 예를 들어, 기호와 숫자 (또는 숫자와 문자열 끝 사이의 다른 데이터) 사이에 공백이 있으면 일치하지 않습니다. – mopoke