2011-03-03 4 views
2

PDF 전화 청구서의 복사 및 붙여 넣기 작업 인 거대한 텍스트 파일이 있습니다. 각 전화 번호를 추출하여 배열에 넣어야 DB 테이블에 숫자를 삽입하고 쿼리를 실행할 수 있습니다.PHP를 사용하여 문자열이나 파일에서 여러 전화 번호 추출

나는 모든 숫자를 시도하고 비참하게 실패하려고 preg_match_all을 사용하고 있습니다. 여기에 내가 가지고있는 코드가있다 :

$phone_list = "13:26 (415)332-5555 13:49 (925)398-5555 13:56 (415)294-3333 14:17 (707)538-2222 14:23 (415)233-1111 14:28 (415)294-0000 14:34"; 
preg_match_all('/^\(?(\d{3})\)?[- ]?(\d{3})[- ]?(\d{4})$/',$phone_list,$matches); 

... 아무 것도 반환하지 않는다. $ phone_list를 다음과 같이 단축하면 :

$phone_list = "(415)294-0000"; 

... 결과가 나타납니다. 내가 뭘 놓치고 있니?

도움 주셔서 감사합니다.

답변

3

앵커를 제거하십시오 ^$ - 정규식이 전체 문자열과 일치하도록합니다.

^은 "일치가 문자열 시작 부분에 시작한다는 것을 나타냅니다"를 의미합니다.

$ "일치가 문자열의 끝에서 종료한다고 주장합니다."를 의미합니다.

+0

감사합니다 ... 이것은 내가 필요한 것입니다. 때때로 RegEx는 나에게 산스크리트어처럼 느낍니다. :) – Claydough