정규식 질문합니다. 채택완료
안녕하세요. 이렇게 오랜만에 질문을 드리게되네요.
우선 답변 감사드리구요! 언제나 행복 하실꺼에요!!
</p>
<p><div class='Code User' id='Main'></p>
<p>html tag 50줄</p>
<p></div></p>
<p>
상단에 코드안에 html tag 50줄 정도가 들어있습니다!
저 내용만 추출 하는 정규식을 만들고 싶어요.
근데 조건은
div태그 - > Code클래스명으로 저 내용을 추출 하는 방식을 알고싶어서요!!
php preg_match_all로 추출 하려고 합니다!!
preg_match_all("#<div[\s]class=['\"]board-list['\"]>(.*?)<\/div>#is", $Result, $content);
이런식으로 써봤는데요.. 중간 내용이 짤려서 </div>가 중간에 닫혀버립니다. ㅠㅠ..형제 요소가 아닌 자식 </div>에서 닫혀버려서 내용부분이 잘리는 현상이있습니다. ㅠㅠ
감사합니다!
답변 3개
php 에도 css selector 를 쓸 수 있네요.
https://github.com/tj/php-selector" href="https://github.com/tj/php-selector">https://github.com/tj/php-selector
이건 어떤가요?
댓글을 작성하려면 로그인이 필요합니다.
저 예시의 마지막 </div>태그 앞 부분이나 뒤 부분의 특정될 내용을 알아야 풀 수 있겠네요.
아마도 가운데 50줄 정도되는 태그중 div태그가 있고 /div태그가 있을 것으로 보이는데
거기서 짤리는 모양이네요.
그리고 저런 형태가 되풀이 반복되지 않는다면 preg_match함수를 사용하죠.
댓글을 작성하려면 로그인이 필요합니다.
중간에 닫혀 버리는 </div> 때문이시라면 * 대신에 + 를 써보세요
preg_match_all("#<div[\s]class=['\"]board-list['\"]>(.+)<\/div>#is", $Result, $content);
답변에 대한 댓글 3개
그렇다면 방법이 파싱 프로그램을 만드는 거 말곤 딱히 없습니다.
lazy, greedy match 검색만 해봐도 잘 안되기도 하지만 하도 경우가 많아서 믿을수 없다고 하더군요 ^^
조금더 효율적이고 간단한 방법을 찾다보니 이렇게 된거같습니다.ㅎ
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인