2011-03-22 4 views
0

문자열의 모든 테이블을 preg_replace로 바꿀 수 있습니까? 이는 다른 테이블에 중첩 된 테이블을 의미합니다. 현재이 코드를 사용하고 있습니다 :php preg_replace 테이블 (테이블에도 중첩 된 테이블)

$pattern = '/(<table[^>]*>)(.*?)(<\/table>)/is'; 

"청소"또는 모든 테이블 교체가 아닙니다.

누구나 아이디어가 있습니까?

+0

제안 : HTML을 구문 분석하기 위해 DOM을 사용하십시오. http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags를 확인하십시오. –

+0

[정규식을 사용하여 HTML 구문 분석하기 : 이유는 무엇입니까?] (https : //stackoverflow.com/questions/590747/using-regular-expressions-to-parse-html-why-not) –

답변

0

정규식은 테이블 열기와 일치하며 중첩 테이블 닫기는 내가 볼 수있는 한 일치합니다. 중첩 테이블을 교체하는 것은 조금 복잡합니다. 정확히 무엇으로 교체 할 것입니까? 중첩을 어떻게 처리 할 계획입니까?

TABLE 태그를 바꾸는 경우 별도로 처리하지 않는 것이 좋습니다. 따라서 모든 여는 태그를 모두 바꾼 다음 모든 닫는 태그를 닫습니다. 이렇게하면 중첩이 유지됩니다.