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 p
pero no el que lo encierra <>
.
Normalmente, usaría: \<(.*?)\>
para capturar el grupo dentro de los corchetes, ¡pero InDesign incluye los corchetes!
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.
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.