Düzenli ifadelerin yeni kullanıcılarından biriyim, yalnızca gerekli (src/href/style) özniteliğini değerleriyle tutarak ve gereksiz öznitelikleri ortadan kaldırarak HTML etiketlerini filtrelemeye çalışıyorum. Googling ederken sadece "src" özelliğini tutmak için normal bir ifade buldum, dolayısıyla benim değişmiş ifade aşağıdaki gibidir:Gereksiz öznitelikleri JavaScript'i kullanarak html etiketinden kaldırın. RegEx
<([a-z][a-z0-9]*)(?:[^>]*(\s(src|href|style)=['\"][^'\"]*['\"]))?[^>]*?(\/?)>
Onun iyi çalışıyor ama bir etiketi sonra birden fazla gerekli öznitelik içeriyorsa Tek sorun ise, sadece son eşleşen tek özniteliği tutar ve kalanını atar. Aşağıdaki çıktıyı ikamesi dizesi olarak <$1$2$4>
ile yukarıda belirtilen ifade kullanarak ve elde https://regex101.com/#javascript de şu metni
<title>Hello World</title>
<div fadeout"="" style="margin:0px;" class="xyz">
<img src="abc.jpg" alt="" />
<p style="margin-bottom:10px;">
The event is celebrating its 50th anniversary Kö
<a style="margin:0px;" href="http://www.germany.travel/">exhibition grounds in Cologne</a>.
</p>
<p style="padding:0px;"></p>
<p style="color:black;">
<strong>A festival for art lovers</strong>
</p>
</div>
temizlemeye çalışıyorum
:
<title>Hello World</title>
<div style="margin:0px;">
<img src="abc.jpg"/>
<p style="margin-bottom:10px;">
The event is celebrating its 50th anniversary Kö
<a href="http://www.germany.travel/">exhibition grounds in Cologne</a>.
</p>
<p style="padding:0px;"></p>
<p style="color:black;">
<strong>A festival for art lovers</strong>
</p>
</div>
Sorun "tarzı" niteliği gelen atılır bağlantı etiketi. (\s(src|href|style)=['\"][^'\"]*['\"])
bloğunu * işlecini, {3} seçiciyi ve çok daha fazlasını boşa harcamayı denedim. Herhangi bir öneri ??? İşte
Ben test için RegexBuddy kullanarak önerebilirsiniz ifade. Geçmişte bana çok zaman kazandırdı. https://www.regexbuddy.com/ –
Referans için OP kodu https://regex101.com/r/mP0pX6/1 –
adresinde bulunabilir. Neden RegEX yerine DOM manipülasyonunu kullanmıyorsunuz? –