제거 다음 PHP 정규식 모든 빈 태그를 제외한 모든 빈 태그를 제거지정된
#<[^\/>]*>([\s]?)*<\/[^>]*>#u
내가 일치하지 않는 빈 태그를 제거하려면 :
<div style="clear:both"></div>
을 해봤 :
를#^(<div style="clear:both"></div>)<[^\/>]*>([\s]?)*<\/[^>]*>#u
...하지만 작동하지 않았습니다.
부정을 어떻게 추가합니까?
<(?!div\s+style=(?:"[^"]*?\bclear:\s*both\b[^"]*"|'[^']*?\bclear:\s*both\b[^']*')\s*>\s*</div>).*?>\s*</.*?>
너무 케이스 - 무감각 플래그를 사용하십시오 : 누락 된 종료 태그가없는 및 잘 형성된다고 가정
HTML을 정규식으로 구문 분석/처리하지 않습니다. – PeeHaa
'^'을 혼란스럽게합니다. 제목이나 줄의 시작을 의미합니다. 대신 어설 션'(?! ...)'이 필요합니다. – mario
HTML은 일반 언어가 아닙니다. 그리고 어떤 상황에서는 종결 태그가 * 누락 * * 될 수 있습니다 *. 즉, 특정 종료 태그가 누락 된 경우에도 HTML 문서는 올바른 형식으로 간주 될 수 있습니다. 이렇게하면 빈 태그를 검색하기가 더 어려워집니다. –