InDesign, Grep y resaltado de sintaxis

Tengo que hacer un libro electrónico que contenga fragmentos de código. Estoy usando GREP para seleccionar todas las etiquetas de código (limitadas por <> - corchetes triangulares) y les aplico un estilo personalizado.

El RegEx que he desarrollado: http://regexr.com/39puq

Funciona bien en línea.

Sin embargo, no funciona en InDesign. He adjuntado una imagen (ver la diferencia entre ella y el enlace de arriba.

El segundo párrafo contiene un conjunto de sangrías que InDesign simplemente omite.

¿Alguna idea de por qué? ¿Me estoy perdiendo de algo?

Gracias.Inconsistencia de InDesign

Edición posterior:

Siguiendo otro hilo de StackExchange , encontré este fragmento: <.*>

Sin embargo, tiene el mismo efecto no deseado. Ayuda.

Respuestas (2)

No intente hacer coincidir XML genérico con expresiones regulares. No funcionará en muchos casos, use un analizador XML en su lugar y exporte el resultado. Ver:

En cualquier caso, el estilo grep no permite coincidencias sobre los límites de los párrafos porque no es un analizador de varios párrafos. Puede eludir este problema con dificultad, reemplazando todos los finales de párrafo con saltos de línea forzados. Esto hace que en el diseño se considere una sola línea y coincida mejor. Ahora su expresión regular funcionaría.

Entonces su expresión regular podría simplificarse como:

<\/?(.|\n)*?>

Como la coincidencia (.|/s|/S)es algo redundante, ya que la mayoría de /s y /S están incluidos en . aunque \n NO es tan solo agregar esa excepción que facilita las pruebas. Los motores Regexp en general difieren en la forma en que manejan las cosas de varias líneas, así que tenga cuidado con los problemas que se encuentran de esta manera.

ADVERTENCIA: esta expresión regular no será realmente robusta, ya que entiende nested <>. Entonces, el código comentado puede arruinar la realeza. Use un analizador para volcar las cosas como RTF, un enfoque mucho mejor.

Su problema es que el elemento de varias líneas no es un párrafo en lo que respecta a InDesign. Son 5 párrafos.

Reemplace los retornos de párrafo con saltos de línea forzados (Shift-Enter) y funcionará como se esperaba.

ingrese la descripción de la imagen aquí