Ungkapan biasa untuk mengalih keluar ruang antara teg HTML yang tidak sah - cth. "</b>" hendaklah "</b>"
P粉884667022
2023-09-02 19:56:28
<p>Saya mempunyai beberapa HTML yang dikacaukan oleh ruang dalam teg dan mahu menjadikannya sah semula - contohnya: </p>
<pre class="brush:php;toolbar:false;">< div class='test' >1 >b >benar</ b> pisang< / div ></pre>
<p> hendaklah ditukar kepada HTML yang sah, dan apabila dipaparkan, dijangka menghasilkan: </p>
<p>
<pre class="snippet-code-html lang-html prettyprint-override"><code><div class='test'>1 > 0 adalah <b>benar</b> >>> pisang</div></code></pre>
</p>
<p>Sebarang teks yang didahului/diikuti dengan ruang dalam <kod>></kod> atau </kod>><</kod> hendaklah kekal tidak berubah - contohnya, <kod> ;1 >0</kod> hendaklah dikekalkan dan bukannya dimampatkan kepada <kod>1>0</kod></p >
<p>Saya sedar ini mungkin memerlukan beberapa ungkapan biasa, yang tidak mengapa</p>
<p>Saya ada beberapa perkara:</p>
<p><kod><s?/s*</code> Ini akan membetulkan sebahagian <kod></ b></ div ></code> ;/b></div ></code>
<p>Sebagai contoh, saya boleh mengambil pendekatan drastik, tetapi itu juga akan memecahkan kod dalam bahagian teks label, bukan nama label itu sendiri</p>
Tiada cara yang munasabah untuk menyimpan dokumen yang rosak seperti yang anda siarkan, tetapi dengan mengandaikan anda meletakkan
>
和类似字符替换为其相关实体,例如:> ;
dalam teks, anda boleh meletakkan dokumen yang anda ingin terima ke dalam perpustakaan yang sesuai seperti DomDocument yang akan menjaga berehat.Keluaran:
Regex ini juga berfungsi:
Ia membahagikan bahagian yang sah dalam teg HTML kepada empat bahagian dan menggantikan bahagian yang tinggal (ruang) dengannya.
Demo Regex101
/(]*S)s*(>)/g
( - Tangkap kurungan sudut bukaan (bahagian 1)
s*
- sepadan dengan mana-mana ruang(/?)
- Menangkap garis miring ke belakang pilihan (Bahagian 2)s*
- sepadan dengan mana-mana ruang selepas garis miring ke belakang([^]*S)
- Tangkap kandungan dalam tag tanpa ruang di belakang (bahagian 3)s*
- Padankan ruang selepas kandungan dan sebelum kurungan sudut kanan(>)
- Menangkap kurungan sudut kanan (bahagian 4)