2014-04-08 3 views
0

두 개의 별개의 <tags> 사이의 HTML 콘텐츠를 얻으려고합니다. 달러 (A $) 기호는 소스 내부에 위치하지 않는 한이 위대한 작품을 지금PHP 정규식 : HTML 태그 사이에 콘텐츠 찾기

preg_match("/<h1>(\s+)<span class=\"fn edit\">([^$]+)<\/span>(\s+)<\/h1>/", $source, $return)

: 여기에 내 현재 정규식입니다. 분명히 내 정규식은 잘못되었지만 두 개의 <h1><span> 태그 사이에서 모든 HTML을 반환하는 적절한 정규식을 찾을 수 없습니다.

당신은 여기 내 라이브 정규식을 볼 수 있습니다 http://regex101.com/r/eT1fF2

+2

http://simplehtmldom.sourceforge.net – tenub

+0

추출하려고합니까? 예상되는 출력을 게시하십시오. –

+0

패턴을 구분하기 위해/이외의 다른 문자를 사용하면 이스케이프 처리 할 필요가 없습니다. # 또는 ~을 시도하십시오. 아마도 $가 "-delimited string"내에서 변수로 해석 될 수 있습니다. \ $를 이스케이프 처리하십시오. 's'플래그를 사용해야 라인의 끝에서 끝나지 않을 수도 있습니다. 라이브러리를 사용하여 HTML을 트리 구조로 구문 분석 - 사용을 고려하십시오. –

답변

0

을 지금 $ 기호가 소스 내부에 위치하지 않는 한 그것이 잘 작동합니다.

$를 갖고 싶으면 문자 클래스 [^$]을 사용하는 것처럼 그것을 부정해서는 안됩니다. 대신 . 및 한정자 s (PCRE_DOTALL) 또는 \C을 사용할 수 있습니다.