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