"應該是"",我有一些HTML,這些HTML都被標籤內的空格弄亂了,並且希望使其再次有效-例如: 我有一些 HTML,這些 HTML 都被標籤內的空格弄亂了,並且希望使其再次有效 - 例如: 應轉換為有效的 HTML,並且在渲染時,預計會產生: 文本中任何 我意識到這可能需要幾個正規表示式,這很好 我有幾件事: 例如,我可以採取嚴厲的方法,但這也會破壞標籤文字部分內的程式碼,而不是標籤名稱本身< div class='test' >1 > 0 is < b >true b> and apples >>> bananas< / div >
>
或>< 前面/後面有空格的文本應保持不變- 例如,/code> 前面/後面有空格的文本應保持不變- 例如,
;1 > 0
要保留,而不是壓縮到1>0
<\s?\/\s*
這將部分修復 b> div >
到< code>
沒有合理的方法來保存像您發布的內容一樣損壞的文檔,但假設您將文本中的
>
和類似字元替換為其相關實體,例如:> ;
,您可以將要接受的文件放入適當的庫中,例如DomDocument將處理剩下的事情。輸出:
這個正規表示式也有效:
它將 HTML 標籤中的有效部分分為四個部分,並用其替換其餘部分(空格)。
Regex101 示範
/(]*\S)\s*(>)/g
#( - 捕捉起始尖括號(第 1 節)
\s*
- 符合任何空格(\/?)
- 捕捉可選的反斜線(第 2 部分)\s*
- 符合反斜線後的任何空格([^]*\S)
- 捕捉標籤內的內容,不帶尾隨空格(第 3 節)\s*
- 符合內容後面和右尖括號之前的空格(>)
- 捕捉右尖括號(第 4 節)