RegEx match open tags except XHTML self-contained tags ile bağlantı kurmaya başlamadan önce tüm soruları okuyun.HTML ayrıştırıcısı nasıl oluşturulur?
Kendimi yeni bir şeyler öğrenmek için bir HTML ayrıştırıcısı yazmak (yalnızca HTML 5 için HTML 5 olup olmadığını kontrol etmeli, yoksa bir hata döndürmeli) istiyorum ama ne olduğunu bilmiyorum Bunu yapmanın en iyi yolu.
<!doctype html>
<html>
<head>
<!-- #TITLE -->
<title>Just an example</title>
</head>
<body>
<p class='main'>Simple paragraph with an <a href='/a.html'>anchor</a></p>
</body>
</html>
Artık herkes nasıl bu (önemli değil nihai şeklini, sadece bir kavram) ayrıştırmak için beni gösterilebilir: Size bir örnek göstereyim? Bazı fikirlerim vardı (özyinelemeli işlevler kullanmak ya da gerçek etiketi barındıran diziye başvurmak gibi), ama bunların en iyi kavramlar olduğunu sanmıyorum. Char'i char ile kontrol edip belirli işlevleri çağırmalı mıyım yoksa normal ifadeler kullanmalı mıyım (aşağıda açıklanmıştır)?
Düzenli ifadeler kullanarak etiketin tamamı için tek bir kalıp anlamına gelmez. Daha çok tagname için bir kalıp kullanıyorum (ve eğer bu doğru gelirse, sonraki kalıpları kontrol edin), daha sonra nitelik için (ve eğer bu doğruysa, tekrar kontrol edin) ve son olarak etiketin sonunu kontrol etmeyi kastediyorum.
Etiket bulduğumda ne yapmalıyım? Etiketleri kontrol eden bir döngü çalıştırın (ve etiket bulursa, tekrar ve tekrar arayın ...)? Ama benim için X, X fonksiyonunu çağırdığında, yinelemeli fonksiyon ya da en azından yarım-yinelemeli gibi görünüyor X ...
Son soru şudur: Bunun için en verimli ve doğru yapı nedir?
Cevabınızın bana yardım ettiğini sanmıyorum ...Bu soruyu daha önce görmüştüm ve “** Normal ifadeleri kullanarak tüm etiket için bir kalıp demek istemiyorum. **” Ve bu arada, bunu 2 dakikadan kısa bir sürede nasıl okudunuz? Bir lexer'dan bahsetmek için – user1951214