¿Cómo construir una sintaxis de expresión regular para etiquetas HTML?
Las expresiones regulares tienen posiciones insustituibles en el proceso de procesamiento de cadenas. Hoy existen paquetes de soporte de expresión regular correspondientes en los idiomas de alto nivel de la computadora.
Si tratamos el código HTML en una página web como una cadena estructurada, ¿cómo podemos extraer las etiquetas HTML deseadas de una manera similar a las expresiones regulares?
No consideremos cómo implementarlo primero, pero considere cómo describir la etiqueta HTML de una manera regular similar a la expresión. Para obtener una etiqueta HTML, debe conocer los 2 tipos de atributos de la etiqueta:
1. La ubicación de la etiqueta;
2. Los atributos de la etiqueta en sí;
Por ejemplo, en la siguiente página HTML:
<html>
<Body>
<div id = "Bodywrapper">
<div id = "LeftWrapper">
</div>
<div id = "Rightwrapper">
<div>
<div>
<div>
<div>
</div>
</div>
</body>
</html>
Si desea extraer la segunda etiqueta DIV en el código HTML anterior, entonces necesito especificar la ID, la clase y la información de ubicación del DIV. La pregunta ahora es: ¿cómo diseñar una gramática de expresión que cumpla con los requisitos anteriores?
Por ejemplo:
getTag: div {tag-name: div; tag-posposition: 2; tag-class: column; tag-id:; etiqueta contenido :;}
TAG-PARENT {TAG-NAME: DIV; TAG-Position: 2; tag-class: column; tag-id:; etiqueta contenido :;}
Tag-Child {......}
Por encima de esto hay una sintaxis descriptiva fácil de entender.
O una sintaxis similar a la pitón:
GetTag: Div
Nombre de la etiqueta:
TAG-ID:
Posición de etiqueta: 2
Clase de etiqueta: columna
contenido de etiqueta:
Etiqueta-Parrent:
Nombre de la etiqueta:
TAG-ID:
Posición de etiqueta: 2
Clase de etiqueta: columna
contenido de etiqueta:
Etiqueta:
Tipo de etiqueta: mesa
No sé si hay una forma de expresión gramatical más adecuada. Mientras esta gramática de expresión pueda diseñarse razonablemente, el trabajo posterior será fácil de hacer. El objetivo final de esto es: los programadores pueden analizar el código HTML con esta expresión, tan conveniente como el manejo de cadenas ordinarias.
Espero que todos participen y dan más ideas. Mejoraré esta gramática en función de los comentarios de todos y haré una implementación basada en esta gramática.
referirse a:
Se puede encontrar una introducción básica a las expresiones regulares aquí:
http://www.vevb.com/htmldata/2006-03-16/1142469074.html
http://www.vevb.com/htmldata/2006-03-16/1142468929.html
Las expresiones regulares fueron propuestas por primera vez por el matemático Stephen Kleene en 1956, basado en los resultados de investigación incrementales del lenguaje natural. Se utilizaron expresiones regulares con sintaxis completa en la coincidencia de caracteres de forma y luego se aplicaron al campo de la tecnología de la información fundida. Desde entonces, después de varios períodos de desarrollo, los estándares actuales han sido aprobados por ISO (Organización Internacional de Normas) y reconocidos por el Grupo Abierto.
Las expresiones regulares no son un lenguaje especializado, pero pueden usarse como un estándar para encontrar y reemplazar el texto en un archivo o carácter. Tiene dos estándares: expresiones regulares básicas (BRE), expresiones regulares extendidas (ERE). Erre incluye funciones BRE y otros conceptos.
Las expresiones regulares se utilizan en muchos programas, incluidos XSH, EGREP, SED, VI y programas en la plataforma UNIX. Pueden ser adoptados por muchos idiomas, como HTML y XML, que generalmente son solo un subconjunto de todo el estándar.