SO'da HTML veya XML'in normal ifadelerle ayrıştırılmasıyla ilgili soru sorulmadan geçen bir gün yoktur.
Bu görev için normal ifadelerin geçerli olmadığını gösteren örnekler bulmak nispeten kolay olsa da veya kavramı temsil edecek bir ifade koleksiyonuyla SO'da bunun neden layman'da yapılmadığına dair resmi bir açıklama bulamadım. terimleri.
Bu sitede şimdiye kadar bulabildiğim tek resmi açıklama muhtemelen son derece doğru, ama aynı zamanda kendi kendini yetiştiren programcı için oldukça gizemli:
buradaki kusur, HTML'nin bir Chomsky Type 2 dilbilgisi (bağlamdan bağımsız dilbilgisi) ve RegEx'in bir Chomsky Type 3 dilbilgisi (normal ifade) olmasıdır.
veya:
Normal ifadeler yalnızca normal dillerle eşleşebilir, ancak HTML bağlamdan bağımsız bir dildir.
veya:
Sonlu bir otomat (düzenli bir ifadenin altında yatan veri yapısıdır) içinde bulunduğu durumdan ayrı bir belleğe sahip değildir ve eğer keyfi olarak derinlemesine yerleştirmeye sahipseniz, sonlu bir otomat kavramıyla çarpışan rastgele büyük bir otomata ihtiyacınız vardır.
veya:
Normal diller için Pumping lemma, bunu yapamamanızın nedenidir.
[Adil olmak gerekirse: yukarıdaki açıklamaların çoğu wikipedia sayfalarına bağlantılıdır, ancak bunların anlaşılması yanıtların kendilerinden çok daha kolay değildir].
Öyleyse sorum şu: birileri lütfen yukarıda verilen resmi açıklamaların (X) HTML / XML ayrıştırmak için normal ifadenin kullanılmasının mümkün olmadığına dair meslekten olmayan terimlerle bir çeviri sağlayabilir mi?
DÜZENLEME: İlk cevabı okuduktan sonra açıklığa kavuşturmam gerektiğini düşündüm: Çevirmeye çalıştığı kavramları da kısaca açıklayan bir "çeviri" arıyorum : bir cevabın sonunda, okuyucunun kaba bir fikri olmalı - örneğin - "normal dil" ve "bağlamdan bağımsız dilbilgisi" ne anlama geliyor ...