¿Cómo uso comodines en Notepad++ para "buscar y reemplazar" todo este texto?

¿Cómo uso comodines en Notepad++ para "buscar y reemplazar" todo este texto?

Realmente apreciaría algo de ayuda con esto. Estoy trabajando con un gran corpus de texto que ha sido marcado con script XML y necesito ordenar algunas cosas. Más específicamente, hay varios cientos de números entre corchetes (es decir, como '[1234]') que necesito eliminar (incluidos los corchetes). Cada número es diferente y puede haber entre 3 y 5 dígitos en estos números.

Lo segundo que debo hacer es colocar etiquetas XML alrededor de otras partes del texto. Estos son nombres entre paréntesis. Es decir, como:

Él (el Sr. Smith) dijo...

Que quiero cambiar a:

Él <annot> (Mr. Smith) </annot>dijo...'.

¿Cómo puedo realizar ambos cambios?

Ya intenté usar el modo extendido y buscar '[.*]', pero no devuelve resultados. Cuando intento lo mismo con RegEx, obtengo muchos resultados, pero parece estar buscando todos y cada uno de los corchetes del corpus.

Respuesta1

Los corchetes son un símbolo especial en las expresiones regulares ( [a-z]significa cualquier carácter en el rango ade z), por lo que tendrías que escapar de ellos.

Su expresión de búsqueda sería \[\d+\](con \d+significado de uno o más dígitos). Sin embargo, desea reemplazar esto solo con los dígitos. Debe configurar un grupo de captura, usar paréntesis y hacer referencia a él en la expresión de reemplazo. Tus configuraciones se convierten en:

  • Buscar:\[(\d+)\]
  • Reemplazar con:\1

En cuanto a su segundo problema, no estoy seguro de haberlo entendido correctamente con el contexto que proporciona... si solo los nombres están entre paréntesis, puede simplemente reemplazarlos \([^\)]+\)con <annot> \0 </annot>, o tal vez \(Mr\. [^\)]+\)si los nombres están precedidos por Mr..

Para entrar en detalles, la forma en que funciona es la siguiente:

  • el paréntesis que busca debe tener carácter de escape (ya que normalmente se usan para definir grupos de captura, por lo que usa \(y\)
  • [^...]+significa uno o más caracteres que no son...
  • Por lo tanto, su expresión de búsqueda es un paréntesis de apertura, seguido de cualquier carácter que no sea un paréntesis de cierre (por lo que debe coincidir con los nombres), seguido de un paréntesis de cierre.
  • \0representa toda la expresión buscada en el área de reemplazo

Si tiene una lista de esos nombres para reemplazar, será mejor que la use \(whatever name\)como expresión de búsqueda, y si no la tiene, entonces es imposible, ya que no puede hacer que una expresión regular "adivine" qué es un nombre y qué no. .

información relacionada