Sig:
Introducción
Sup:
SEGUNDA PARTE: APUNTES DE
Ant:
Seleccionando Items en un
Con:
Ind:
Expresiones Regulares en Perl
Subsecciones
Introducción
Véase También
Un ejemplo sencillo
Matching en Contexto Escalar
Número de Paréntesis
Contexto de Lista
El modificador
s
El modificador
m
El conversor de temperaturas reescrito usando contexto de lista
La opción
x
Paréntesis sin memoria
Interpolación en los patrones: La opción
o
Cuantificadores greedy
Regexp y Bucles Infinitos
Cuantificadores
lazy
Descripción detallada del proceso de matching
Rendimiento
Eliminación de Comentarios de un Programa C
Negaciones y operadores
lazy
Copia y sustitución simultáneas
Referencias a Paréntesis Previos
Usando Referencias con Nombre (Perl 5.10)
Grupos con Nombre y Factorización
LLamadas a expresiones regulares via paréntesis con memoria
Reutilizando Expresiones Regulares
El Módulo Regexp::Common
Smart Matching
Ejercicios
Depuración de Expresiones Regulares
Tablas de Escapes, Metacarácteres, Cuantificadores, Clases
Metacharacters
Standard greedy quantifiers
Non greedy quantifiers
Possesive quantifiers
Escape sequences
Character Classes and other Special Escapes
Zero width assertions
The POSIX character class syntax
Available classes
Equivalences to Unicode
Negated character classes
Variables especiales después de un emparejamiento
Las Variables de match, pre-match y post-mach
Texto Asociado con el Último Paréntesis
Los Offsets de los Inicios de los Casamientos:
@-
Desplazamientos de los Finales de los Emparejamientos:
@+
Número de paréntesis en la última regexp con éxito
Indice del Ultimo Paréntesis
@-
y
@+
no tienen que tener el mismo tamaño
Véase También
Ambito Automático
Opciones
El Modificador
/g
La opción
e
: Evaluación del remplazo
Algunas Extensiones
Comentarios
Modificadores locales
Mirando hacia adetrás y hacia adelante
Las zero-width assertions como caso particular de mirar atrás-adelante
Lookahead assertion
A hard RegEx problem
Los paréntesis looakehaed and lookbehind no capturan
Limitaciones del lookbehind
Negación de los operadores de lookahead y lookbehind
Ejemplo: split con lookahead y lookbehind
Look Around en perlre
Operador de predicción negativo: Última ocurrencia
Diferencias entre mirar adelante negativo y mirar adelante con clase negada
AND y AND NOT
Lookahead negativo versus lookbehind
Ejercicios
Definición de Nombres de Patrones
Lo que dice
perlretut
sobre la definición de nombres de patrones
Lo que dice
perlre
sobre la definición de patrones
Lo que dice
perlvar
sobre patrones con nombre
Patrones Recursivos
Palíndromos
Lo que dice
perlre
sobre recursividad
Paréntesis Equilibrados
Capturando los bloques de un programa
Reconocimiento de Lenguajes Recursivos: Un subconjunto de
L
A
T
E
X
Reconocimiento de Expresiones Aritméticas
Cuantificadores Posesivos
Cadenas Delimitadas por Comillas Dobles
Paréntesis Posesivos
Paréntesis Balanceados
Encontrando los bloques de un programa
Véase también
Perl 5.10: Numeración de los Grupos en Alternativas
Ejecución de Código dentro de una Expresión Regular
Resultado de la última ejecución
El Código empotrado no es interpolado
Contenido del último paréntesis y la variable por defecto en acciones empotradas
Los cuantificadores y el código empotrado
Ámbito
Caveats
Depurando con código empotrado Colisiones en los Nombres de las Subexpresiones Regulares
Expresiones Regulares en tiempo de matching
Paréntesis con memoria dentro de una
pattern code expression
Ejemplo: Secuencias de dígitos de longitud especificada por el primer dígito
Ejemplo: Secuencias de dígitos no repetidos
Palíndromos con independencia del acento
Postponiendo para conseguir recursividad
Caveats
Expresiones Condicionales
Condiciones: número de paréntesis
Ejemplo: cadenas de la forma
una
-otra-otra-
una
Condiciones: Código
Ejemplo: Cadenas con posible paréntesis inicial (no anidados)
Expresiones Condicionales con
(R)
Ejemplo: Palíndromos con Equivalencia de Acentos Españoles
Verbos que controlan el retroceso
El verbo de control
(*FAIL)
El verbo de control
(*ACCEPT)
El verbo
SKIP
Marcas
Poniendo un espacio después de cada signo de puntuación
Unicode
Introducción
Operadores,
STDOUT
y Unicode
Ficheros Unicode en
vim
Apertura de ficheros UTF-8
El Módulo
charnames
Expresiones Regulares y Unicode
Macros: Dígitos y Words
Semántica de Carácter versus Semántica de Byte
Caja e Inversión de Cadenas Unicode
Propiedades
Conversores
Véase también
Expresiones Regulares en Otros Lenguajes
Vim
Java
bash
C
Python
Ruby
Javascript
Casos de Estudio
Secuencias de números de tamaño fijo
Solución usando el ancla
G
Sustitución
Palabras Repetidas
Análisis de cadenas con datos separados por comas
Las Expresiones Regulares como Exploradores de un Árbol de Soluciones
Números Primos
Ecuaciones Diofánticas: Una solución
Ecuaciones Diofánticas: Todas las soluciones
Ecuaciones Diofánticas: Resolutor general
Las Tres Hijas
Mochila 0-1
Véase también
Número de substituciones realizadas
Expandiendo y comprimiendo tabs
Modificación de Múltiples Ficheros: one liner
tr y split
Pack
y
Unpack
Práctica: Un lenguaje para Componer Invitaciones
Analisis Sintáctico con Expresiones Regulares Perl
Introducción al Anaĺisis Sintáctico con Expresiones Regulares
Ejemplo: Traducción de expresiones aritméticas en infijo a postfijo
Accediendo a los atributos de paréntesis anteriores mediante acciones intermedias
Accediendo a los atributos de paréntesis anteriores mediante
@-
Accediendo a los atributos de paréntesis anteriores mediante paréntesis con nombre
Véase También
Construyendo el AST con Expresiones Regulares 5.10
Programa Principal: usando la pila de atributos
Las Clases representando a los AST
Accediendo a los paréntesis lejanos: El módulo
Regexp::Paren
Práctica: Traducción de
invitation
a
HTML
Análisis Sintáctico con
Regexp::Grammars
Introducción
El Problema
Una solución:
Regexp::Grammars
La sintaxis de una expresión regular
Regexp::Grammars
El hash
%/
: Una representación del AST
Diferencias entre
token
y
rule
Redefinición de los espacios en blanco
Llamando a las subreglas
Eliminación del anidamiento de ramas unarias en
%/
Ámbito de uso de
Regexp::Grammars
Objetos
Renombrando los resultados de una subregla
Nombre de la regla versus Nombre del Resultado
Colisión de nombres de reglas
Aliasing
Normalización de los resultados mediante aliasing
Ejemplo
Listas
El operador de cierre positivo
Operadores de listas y espacios en blanco
Una Solución al problema de recordar los resultados de una lista: El uso de brackets
Otra forma de resolver las colisiones de nombres: salvarlos en una lista
Aliasing de listas
Caveat: Cierres y Warnings
Pseudo sub-reglas
Subpatrones
Bloques de código
Pseudo subreglas y depuración
Llamadas a subreglas desmemoriadas
Ejemplo: Números entre comas
Destilación del resultado
Destilación manual
Destilación en el programa
Llamadas privadas a subreglas y subreglas privadas
Mas sobre listas
Reconocimiento manual de listas
Analizando listas manualmente
Influencia del orden en el lenguaje reconocido
Aplanamiento manual de listas
Los operadores de repetición
Listas separadas por Algo
Ejemplo: Listas de números separados por comas
Ejemplo: AST para las expresiones aritméticas
La directiva
require
Casando con las claves de un hash
Ejemplo de uso de la directiva hash
Depuración
Debugging grammar creation
Debugging grammar execution
Mensajes de
log
del usuario
Depuración de Regexps
Manejo y recuperación de errores
Mensajes de Warning
Simplificando el AST
Reciclando una
Regexp::Grammar
Ejecución
Estructura de la aplicación
Programa principal
Las Clases de nodos del AST
Definiendo
sem
para la evaluación de la expresión
Definiendo
sem
para la traducción a postfijo
Práctica: Calculadora con
Regexp::Grammars
Sig:
Introducción
Sup:
SEGUNDA PARTE: APUNTES DE
Ant:
Seleccionando Items en un
Casiano Rodríguez León
2013-04-23