He encontrado muchas publicaciones similares, pero ninguna responde a mi pregunta. Me gustaría reemplazar/eliminar/cambiar etiquetas de apertura y cierre con una palabra clave específica. en este caso, estoy intentando eliminar todas las etiquetas que contengan href="#"...
<a href="#">leave this text</a>
<a class="" id="" href="#">leave this text too</a>
<a href="http://......">Dont remove this tag!</a>
Tengo este código, pero no sé cómo dejar el texto...
find: <a[^h]*href="#"[^>]*> (skip content) </a>
replace: (same content)
or
replace: <a href="somthing"> (same content) </a>
Respuesta1
Estoy intentando eliminar todas las etiquetas que contienenhref="#"
Menú "Buscar" > "Reemplazar" (o Ctrl+ H)
Establezca "Buscar qué" en
<a .*?href="#">(.*?)</a>
Establezca "Reemplazar con" en
\1
Habilitar "Expresión regular"
Haga clic en "Reemplazar todo"
Antes:
<a href="#">leave this text</a>
<a class="" id="" href="#">leave this text too</a>
<a href="http://......">Dont remove this tag!</a>
Después:
leave this text
leave this text too
<a href="http://......">Dont remove this tag!</a>
Como lo señalaAFHen un comentario, hay una expresión regular mejor que captará expresiones que no se incluyeron en los datos de muestra.
Establezca "Buscar qué" en
<a .*?href="#" .*?>(.*?)</a>
Esto coincidirá con las líneas donde hay cláusulas.despuésel
href="#"
(y antes de la primera coincidencia>
).Nota:
No funcionará correctamente si hay mensajes
>
en el campo de valor de una cláusula posterior (antes de la>
coincidencia<a
).
Otras lecturas
Respuesta2
¡Gracias David por la respuesta! Pero en realidad el código: <a .*?href="#">(.*?)</a>
no encontró ningún atributo en mi archivo. Puede deberse a otras configuraciones o versiones diferentes de notepad++. Tuve que usar este código:
Find: <a[^h]*href="#"[^>]*>(.*?)</a>
Replace: <a href="new_url">\1</a>