2011-01-26 17 views

Respuesta

11

El regulares de expresión regular proviene de que coincide con un regular language.

El concepto de regular expressions used in formal language theory es bastante diferente de lo que los motores como PCRE llaman expresiones regulares. PCRE y otros motores similares tienen características como lookahead, conditionals y recursion, que les permiten hacer coincidir idiomas no habituales.

+0

Supongo que en los días BRE, todavía era regular. Sin condicionales. Luego, ERE agregó condicionales ... por lo que técnicamente pudieron combinar idiomas irregulares. Suena bien? – barlop

+1

@barlop No, los BRE POSIX tienen referencias anteriores, y las referencias posteriores son una característica no regular. – hobbs

+0

@hobbs Supongo que las referencias no responden a las gramáticas irregulares, porque aunque no están realmente relacionadas con el análisis sintáctico, son para reemplazarlas. ¿Qué tiene que ver el reemplazo con una gramática? no es para seguir una gramática, así que no es como condicional – barlop

4

Viene de un lenguaje común. Esto es parte de la teoría del lenguaje formal. Consulte el Chomsky hierarchy para conocer otros idiomas formales.

1

Significa que es un lenguaje normal.

Regexes todavía son populares. Algunas personas fruncen el ceño, pero siguen siendo una manera rápida y fácil (si usted sabe cómo usarlos) de hacer coincidir ciertos tipos de cadenas. ¡La alternativa es a menudo unas buenas líneas de código que recorren cadenas y extraen los bits que necesita, lo que es mucho más desagradable!

Todavía los utilizo en una base regular (juego de palabras completamente intencionado), para darle un caso de uso que utilicé el otro día para hacer coincidir las líneas de acordes de guitarra con las letras. También se usan comúnmente para cosas como la validación básica de direcciones de correo electrónico y similares.

Ciertamente no están muertos.

+0

El OP no sugiere que ya no se usen, solo que ya no son regulares, lo que otros han confirmado. –

1

I que se trata del plazo para la clase de gramáticas que describen las expresiones regulares: gramáticas regulares (o idiomas "normales"). Donde ese término proviene de es probable que sea respondido por un viaje a Wikipedia.

Motores regex modernos que implementan todas esas características de conteo de anticipación, ajuste de patrón y subexpresión sofisticados, bueno, están reconociendo una clase de gramática que es un superconjunto de gramáticas regulares. Las expresiones regulares "clásicas" se corresponden mecánicamente con las máquinas teóricas llamadas "autómatas finitos". Es un tema realmente divertido en sí mismo.

Cuestiones relacionadas