Using latex Syntax Highlighting
- \begin{itemize}[algo]
- \item a
- \item b
- \item c
- \begin{itemize}
- \item d
- \item e
- \end{itemize}
- \item f
- \item g
- \end{itemize}
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4
Este es el código que he intentado:
Using perl Syntax Highlighting
- #!/usr/bin/perl
- use v5.14;
- use autodie; # muere si ocurre un error
- use Data::Dumper;
- my $archivo = '
- Caso 1 (sin líneas en blanco)
- \begin{itemize}
- \item a
- \item b
- \item c
- \end{itemize}
- Caso 2 (con líneas en blanco)
- \begin{itemize}
- \item a
- \item b
- \item c
- \end{itemize}
- Caso 3
- \begin{itemize}
- \begin{itemize}
- \item a
- \item b
- \item c
- \end{itemize}
- \end{itemize}
- Caso 3a
- \begin{itemize}
- \begin{itemize}
- \item a
- \item b
- \item c
- \end{itemize}
- \end{itemize}
- Caso 4
- \begin{itemize}[algo]
- \item a
- \item b
- \item c
- \begin{itemize}
- \item d
- \item e
- \end{itemize}
- \item f
- \item g
- \end{itemize}
- Caso 5
- \begin{itemize}[algo]
- \item a
- \item b
- \item c
- \begin{itemize}
- \item d
- \item e
- \end{itemize}
- \item f
- \item g
- \end{itemize}
- ';
- # ExpReg pasada a /qr
- my $regex = qr/
- ((?&LISTA)) # captura
- (?(DEFINE) # Verbo que inicia la expresión regular
- (?<LISTA> # comenzamos con la búsqueda
- \\begin\{itemize\}\s* # inicio del bloque deseado
- .+?
- (?&ENVCODE)? # recursiva
- .+?
- \\end\{itemize\}(?:\s*)? # fin del bloque deseado
- ) # cierra LISTA
- (?<ENVCODE> (?:(?&LISTA)).+ ) # Aplicamos la recursividad
- )
- /mx;
- $archivo =~ s/($regex)/Corta\n($1)Aqui\n/gmsx;
- say "$1";
- __END__
Coloreado en 0.004 segundos, usando GeSHi 1.0.8.4
Agradecido.
Pablo