Cambie los estilos de etiquetas HTML con GREP en InDesign

Tengo algo de HTML en un texto y me gustaría aplicar un estilo de carácter a las etiquetas HTML:

<p>This is some <strong>HTML</strong> I want to use.</p>

Solo quiero cambiar el nombre de la etiqueta , no el <o >. En otras palabras, quiero cambiar el estilo ppero no el que lo encierra <>.

Normalmente, usaría: \<(.*?)\>para capturar el grupo dentro de los corchetes, ¡pero InDesign incluye los corchetes!

Respuestas (2)

No es una buena idea analizar HTML con expresiones regulares (GREP). ;(

¿Por qué estás escapando de los caracteres <y >? no deberían tener un significado específico en las expresiones regulares. Prueba <(.*?)>o incluso mejor <([^<>]*)>. Pero eso coincide con todo, aunque tiene un grupo coincidente, puede usarlo para reemplazar, pero no altera la selección. Así que lo que necesitas es algo diferente.

Mirar hacia adelante y mirar hacia atrás del operador

Puede encontrarlos en el grupo de coincidencias. En este caso son objetos de mirada positiva hacia adelante/atrás. Lo que esto hace es que coincida si estas cosas rodean la coincidencia. Por lo tanto, su expresión regular se convierte en:

(?<=<)([^<>]*)(?=>)

También existe algo llamado búsqueda negativa hacia adelante/atrás que coincide si la coincidencia no está presente.

Resulta que funcionaba, pero los estilos de carácter anulaban los estilos de párrafo. :(

FWIW, joojaa tiene razón en que <no >es necesario escapar, y su expresión regular es probablemente mucho más robusta.