탭 이 닫 혔 는 지 여 부 를 정규 적 으로 판단 합 니 다.

예 를 들 어 < img xxx = "xxx" 는 닫 히 지 않 은 태그 입 니 다.
< p > p 의 내용 도 닫 히 지 않 은 태그 입 니 다.
간단 한 정규 부터 시작 탭 과 일치 합 니 다.
 /<[a-z]+/i 

여기에 몇 가지 속성 을 더 하면:
 /<[a-z]+(\s*\w*?\s*=\s*".+?")*/i 

다음은 관건 입 니 다. 라벨 의 닫 기 입 니 다.라벨 은 두 가지 방식 으로 닫 힐 수 있 습 니 다. < img xxx = "xxx" / >
아니면 < p > xxx < / p >.
(\s*\/>)
img 클래스 의 끝, 즉 / > 와 일치 합 니 다.
(\s*?>[\s\S]*?<\/\1>)
\ p 클래스 탭 과 일치 하 는 끝 탭 입 니 다. >사실 탭 의 끝 입 니 다. 그 다음 에 탭 내용 에 몇 개의 임의의 문자 가 있 습 니 다. 마지막 < \ / \ 1 > 은 탭 을 끝 냅 니 다.
하나 또는 하 나 를 더 하면 해결 할 수 있 습 니 다. 마지막 정규 표현 식:
전체 정규:
/<([a-z]+)(\s*\w*?\s*=\s*".+?")*(\s*?>[\s\S]*?<\/\1>|\s*\/>)/i 

이 정규 를 가지 고 일치 하면 닫 힌 다 는 뜻 이 고 일치 하지 않 으 면 닫 히 지 않 는 다.그러나 같은 태그 가 포 함 된 문 제 는 고려 하지 않 았 습 니 다. 예 를 들 어
aaaaaa
test

합격 으로 판단 되 었 습 니 다. 마지막 일치 p 류 끝 탭 을 하위 정규 표현 식 으로 쓰 고 욕심 이 없 는 것 으로 변경 한 다음 일치 하 는 결과 에서 쌍 이 되 는 지 확인 할 수 있 습 니 다.정 칙 은 다음 과 같다.
 /<([a-z]+)(\s*\w*?\s*=\s*".+?")*(\s*?>[\s\S]*?(<\/\1>)+|\s*\/>)/i 

좋은 웹페이지 즐겨찾기