찾다

 >  Q&A  >  본문

유효하지 않은 HTML 태그 사이의 공백을 제거하는 정규식 - 예: "</b>"는 "</b>"이어야 합니다.

<p>태그 내의 공백으로 인해 일부 HTML이 엉망이 되어 다시 유효하게 만들고 싶습니다. 예를 들면 다음과 같습니다. </p> <pre class="brush:php;toolbar:false;">< div class='test' >1 > 0은 <b >true</ b> 바나나</div></pre> <p>는 유효한 HTML로 변환되어야 하며, 렌더링되면 다음이 생성될 것으로 예상됩니다. </p> <p> <pre class="snippet-code-html lang-html Prettyprint-override"><code><div class='test'>1 > 0은 <b>true</b> >>> 바나나</div></code></pre> </p> <p><code></code> 또는 </code><</code>에서 공백 앞/뒤의 모든 텍스트는 변경되지 않은 상태로 유지되어야 합니다. 예: <code>1 <0</code>는 <code>0</code></p >로 압축되는 대신 유지되어야 합니다. <p>여기에는 여러 정규 표현식이 필요할 수 있다는 것을 알고 있습니다. 괜찮습니다</p> <p>몇 가지가 있습니다:</p> <p><code><s?/s*</code> 이는 <code></ b></ div ></code>로 부분적으로 수정됩니다. ;/b></div ></code> 나머지는 작업 중입니다< <p>예를 들어 과감한 접근 방식을 취할 수도 있지만 그렇게 하면 라벨 이름 자체가 아닌 라벨 텍스트 부분 내의 코드가 손상될 수도 있습니다.</p>
P粉884667022P粉884667022481일 전521

모든 응답(2)나는 대답할 것이다

  • P粉323050780

    P粉3230507802023-09-03 16:42:37

    당신이 게시한 것만큼 손상된 문서를 저장할 수 있는 합리적인 방법은 없지만 텍스트에 > 和类似字符替换为其相关实体,例如: > ;를 입력한다고 가정하면 승인하려는 문서를 DomDocument 와 같은 적절한 라이브러리에 넣어서 처리할 수 있습니다. 나머지.

    으아악

    출력:

    으아악

    회신하다
    0
  • P粉064448449

    P粉0644484492023-09-03 11:17:47

    이 정규식도 작동합니다:

    HTML 태그의 유효한 부분을 4개 부분으로 나누고 나머지 부분(공백)을 해당 부분으로 대체합니다.

    Regex101 데모

    /(<)s*(/?)s*([^<>]*S)s*(>)/g

    • (<) - 여는 꺾쇠 괄호 캡처(섹션 1)
    • s* - 모든 공백과 일치
    • (/?) - 선택적 백슬래시 캡처(2부)
    • s* - 백슬래시 뒤의 모든 공백과 일치합니다.
    • ([^<>]*S) - 후행 공백 없이 태그 내 콘텐츠 캡처(섹션 3)
    • s* - 콘텐츠 뒤와 오른쪽 꺾쇠괄호 앞의 공백과 일치합니다
    • (>) - 오른쪽 꺾쇠괄호 캡처(섹션 4)

    으아악

    회신하다
    0
  • 취소회신하다