Notepad++ Intentando agregar un carácter SÓLO después del primer espacio en cada línea

Notepad++ Intentando agregar un carácter SÓLO después del primer espacio en cada línea

Tengo 30.000 líneas de texto que tienen un número aleatorio de espacios. Necesito agregar un carácter solo al primer ESPACIO de cada línea. Cualquiera que pueda sugerir algo será muy apreciado.

Respuesta1

  • Ctrl+H
  • Encontrar que:^\S+\h\K
  • Reemplazar con:%
  • comprobar Envolver alrededor
  • comprobar expresión regular
  • Replace all

Explicación:

^           # beginning of line
  \S+       # 1 or more non space
  \h        # 1 horizontal space
  \K        # forget all we've seen until this position

Reemplazo:

%           # the character to insert

Dado:

I have 30,000 lines of text that have randon 
number of spaces in them. I need to add a character 
to just the first SPACE in each line. 
Any who can suggest anything would be 
greatly appreciated.

Resultado para el ejemplo dado:

I %have 30,000 lines of text that have randon 
number %of spaces in them. I need to add a character 
to %just the first SPACE in each line. 
Any %who can suggest anything would be 
greatly %appreciated.

ingrese la descripción de la imagen aquí

Respuesta2

Prueba TextPad. Puede grabar macros y luego reproducirlas. Así que registre lo que desea hacer para la primera línea y, una vez que haya completado la primera línea, deje el cursor al comienzo de la siguiente línea. Luego simplemente reproduzca la macro hasta el final del archivo. O simplemente mantenga presionada la tecla de reproducción de macro.

https://www.textpad.com/

Respuesta3

Lo que estás buscando son expresiones regulares. Lo primero que querrás hacer es convertir tu búsqueda en expresiones regulares.

ingrese la descripción de la imagen aquí

Alegría porque creo que sé exactamente cómo resolver esto.

https://regex101.com/r/aW4gG2/1

La expresión que desea es:
Buscar: (^.*?)( )
Reemplazar:\1#\2

La forma en que esto funciona es la siguiente: en expresiones regulares, ()significa "capturar". Esto significa que encontrará este grupo altamente específico y luego podrá hacer referencia a él en el reemplazo con \1 o \2 o \3. El número empieza en 1 y se cuenta desde el paréntesis abierto

^significa comenzar desde el principio de la línea. (Debido a que desea que su inserto cubra el PRIMER espacio, eso es lo que buscaremos comenzando desde el frente, encuentre el primer espacio)

.*?esta parte encuentra la primera palabra delante del espacio. Lo hace haciendo en un grupo cualquier personaje ( .) tantos como sea posible ( *) pero el menor número necesario ?. Sin el signo de interrogación, simplemente capturarás todos los caracteres (incluidos todos los espacios)

( )esta parte significa que nuestro segundo grupo es el espacio después del primero. Este debería ser el primer espacio. Esto es lo que queremos insertar en nuestro personaje.

la sustitucion

\1#\2

\1se refiere al primer conjunto de caracteres. Y *en la expresión significa que el conjunto de caracteres puede ser una palabra de cualquier longitud, incluido 0.

#es el carácter de inserción

\2\es por supuesto el espacio.

El resultado es poner un #delante de cada primer espacio. Si lo quieres DESPUÉS del primer espacio es tan sencillo como ajustar la sustitución

\1\2#Pondrá el #después de cada primer espacio por línea.


Este es el poder de las expresiones regulares. Una simple búsqueda y reemplazo puede realizar la inserción con mayor precisión que cualquier macro. Es flexible, rápido y la mayoría de las veces no es tan difícil.

Aquí hay un excelente tutorial inicial que debería explicar qué es RegEx y por qué es útil. [RegExOne]. REO es el que me hizo entender

Este es un tutorial que mucha gente recomienda pero que sinceramente no le encuentro mucho sentido. [RegEx.Info]

De hecho, nunca volví a RegEx.info. Salté directamente aDocumentación del Bloc de notas++lo cual fue realmente muy útil en este momento. Eso y por supuesto puedes probar con [RegEx101]. Lo único que querrás hacer es agregar /gmen la expresión. Luego, puedes simplemente pegar un fragmento en TestString y practicar hasta que lo hagas bien.

ingrese la descripción de la imagen aquí

Respuesta4

Existe una solución muy sencilla para esto.

Recordé que ya hay algo en Notepad++.

  • Abre tu ventana Reemplazar
  • Coloque "^" en el campo Buscar seguido de un espacio o lo que quiera encontrar.
    Esto solo buscará algo al comienzo de su línea.
  • Pon lo que necesites en el campo Reemplazar con
  • Establezca el modo de búsqueda en "Expresión regular"
  • Haga clic en Reemplazar todo
  • Hecho

Para más información

información relacionada