Agregue una letra en medio de un texto en cada línea, Notepad++

Agregue una letra en medio de un texto en cada línea, Notepad++

Tengo una gran cantidad de líneas que contienen esto, por ejemplo este texto: OU111_DI_Z006_1

Tenga en cuenta que algunos caracteres son diferentes en cada línea, representados por @. Así: OU@@@_@@_Z0@@__@

¿Cómo puedo utilizar la función de búsqueda y reemplazo para agregar el carácter X antes de Z?

Así: OU111_DI_XZ006_1

Respuesta1

En reemplazar la marca de la ventanaExpresión regulary

Encontrar que: (OU..._.._)(Z0.._.)

Reemplazar con: \1X\2

http://docs.notepad-plus-plus.org/index.php/Regular_Expressions

Respuesta2

Esto depende de tus datos. ¿Los caracteres "OU" y "Z0" son únicos para mostrar el inicio de cada subcadena... o pueden aparecer aleatoriamente (por ejemplo, OU222_Z0_Z055...)?

Si son ÚNICOS y no es posible que aparezcan en ningún lugar excepto como el inicio de cada subcadena, entonces una expresión regular simple puede funcionar de manera muy genérica:

Find:  (OU.*)(Z0.*)
Replace:  \1X\2

Aquí, está agrupando todo (.*) que comienza con OU como "\1". Y agrupando todo lo que comienza con Z0 como "\2". (Los corchetes crean los grupos).

La cadena de reemplazo simplemente coloca una X entre los grupos 1 y 2.

NOTA: esto es muy similar a la respuesta de marbel82, excepto que es más genérico, porque no especifica cuántos guiones bajos y caracteres deben existir.

..

Sin embargo, si OU y Z0 no son marcadores únicos, entonces necesita comprender mejor sus datos para crear una expresión regular genérica para sus características.

información relacionada