Comment construire une syntaxe d'expression régulière pour les balises HTML?
Les expressions régulières ont des positions irremplaçables dans le processus de traitement des chaînes. Il existe des packages de support d'expression régulières correspondants dans des langages de haut niveau informatiques aujourd'hui.
Si nous traitons le code HTML dans une page Web en tant que chaîne structurée, comment pouvons-nous extraire les balises HTML (balises) souhaitées d'une manière similaire aux expressions régulières?
Ne considérons pas comment la mettre en œuvre en premier, mais considérons comment décrire la balise HTML d'une manière régulière d'expression. Pour obtenir une balise HTML, vous devez connaître les 2 types d'attributs de la balise:
1. L'emplacement de l'étiquette;
2. Les attributs de la balise elle-même;
Par exemple, dans la page HTML suivante:
<html>
<body>
<div id = "bodywrapper">
<div id = "Lellwrapper">
</div>
<div id = "droitewrapper">
<div>
<div>
<div>
<div>
</div>
</div>
</docy>
</html>
Si vous souhaitez extraire la deuxième balise DIV dans le code HTML ci-dessus, je dois spécifier les informations d'ID, de classe et de localisation du div. La question est maintenant: comment concevoir une grammaire d'expression qui répond aux exigences ci-dessus?
Par exemple:
getTag: div {tag-name: div; tag position: 2; tag-classe: colonne; tag-id:; TAG-CONTENT:;}
TAG-PAREENT {TAG-NAME: div; Tag Position: 2; tag-classe: colonne; tag-id:; TAG-CONTENT:;}
Tag-enfant {......}
Ci-dessus, c'est une syntaxe descriptive facile à comprendre.
Ou une syntaxe de type python:
gettag: div
nom de tag:
Tag-id:
Position de tag: 2
Classe de tag: colonne
CONTENT DE TAGE:
Tag-parent:
nom de tag:
Tag-id:
Position de tag: 2
Classe de tag: colonne
CONTENT DE TAGE:
Tag-enfant:
Tag-type: table
Je ne sais pas s'il existe une forme d'expression grammaticale plus appropriée. Tant que cette grammaire d'expression peut être conçue raisonnablement, les travaux suivants seront faciles à faire. Le but ultime de ceci est: les programmeurs peuvent analyser le code HTML avec cette expression, tout aussi pratique que la gestion des chaînes ordinaires.
J'espère que tout le monde participera et donnera plus d'idées. Je vais améliorer cette grammaire en fonction des commentaires de chacun et faire une implémentation basée sur cette grammaire.
se référer à:
Une introduction de base aux expressions régulières peut être trouvée ici:
http://www.vevb.com/htmldata/2006-03-16/1142469074.html
http://www.vevb.com/htmldata/2006-03-16/1142468929.html
Des expressions régulières ont d'abord été proposées par le mathématicien Stephen Kleene en 1956, sur la base des résultats de recherche incrémentiels du langage naturel. Des expressions régulières avec syntaxe complète ont été utilisées dans la forme de correspondance des caractères et ont ensuite été appliquées sur le domaine de la technologie de l'information en fusion. Depuis lors, après plusieurs périodes de développement, les normes actuelles ont été approuvées par l'ISO (International Standards Organisation) et reconnues par le groupe ouvert.
Les expressions régulières ne sont pas une langue spécialisée, mais elles peuvent être utilisées comme norme pour trouver et remplacer le texte dans un fichier ou un caractère. Il a deux normes: les expressions régulières de base (BRE), les expressions régulières étendues (ERE). Ere inclut les fonctions BRE et autres concepts.
Des expressions régulières sont utilisées dans de nombreux programmes, notamment XSH, Egrep, SED, VI et des programmes sous la plate-forme UNIX. Ils peuvent être adoptés par de nombreuses langues, telles que HTML et XML, qui ne sont généralement qu'un sous-ensemble de toute la norme.