Usando RegEX para prefijar y agregar en Notepad ++


88

Tengo una lista bastante grande de palabras en un archivo txt y estoy tratando de buscar y reemplazar expresiones regulares en Notepad ++. Necesito agregar una cadena antes de cada línea y después de cada línea. Entonces:

palabra
palabra dos
palabra tres

volverse

capaz: "wordone"
capaz: "wordtwo"
capaz: "wordthree"

¿Cómo puedo hacer esto?


¡Lo siento, esas cadenas de palabras están destinadas a estar en líneas separadas! Apuesto a que ha confundido las cosas ahora ...
zuk1

dulce, ahórrame muchas búsquedas en Google :)
melaos

Respuestas:


173

Suponiendo palabras alfanuméricas, puede utilizar:

Search  = ^([A-Za-z0-9]+)$
Replace = able:"\1"

O, si solo desea resaltar las líneas y usar "Reemplazar todo" & "En la selección" (con el mismo reemplazo):

Search = ^(.+)$

^apunta al inicio de la línea.
$apunta al final de la línea.

\1 será la coincidencia de origen entre paréntesis.


gracias, después de unos 30 minutos de búsqueda llegué aquí para el éxito :)
dhaval

Las expresiones Reg son salvavidas. Gracias por la ayuda.
Techgration

Excelente trabajo +1 para explicar
SSH Este

¡Woot! Esto es justo lo que necesitaba.
Chuck Le Butt

1
En el último N ++, ^([A-Za-z0-9]+)$no arrojó coincidencias, pero ^(.+)$funcionó en todos los escenarios. ¡Gracias!
Laurie Stearn

29

¿Por qué no utiliza las capacidades de edición multilínea de Notepad ++?

Mantenga presionada la tecla Alt mientras selecciona texto (usando su enfoque habitual de hacer clic y arrastrar) para seleccionar texto en varias líneas. A veces, esto también se denomina edición de columnas.

Puede colocar el cursor al principio del archivo, presionar (y mantener) Alt, Shift y luego seguir presionando la flecha hacia abajo o PageDown para seleccionar las líneas que desea anteponer con algo de texto :-) Fácil. La edición de varias líneas es una función muy útil de Notepad ++. También es posible en Visual Studio, de la misma manera, y también en Eclipse cambiando al modo de selección de bloques presionando Alt + Shift + A y luego use el mouse para seleccionar texto entre líneas.


1
+1 Esto es realmente genial, no tenía idea de que pudieras hacer esto. ¿Es posible agregar algo al final de cada línea, cuando la longitud de cada línea es diferente? Por ejemplo, cuando el ancho de la 'columna' varía, sería bueno si pudiera agregar texto a cada línea. Tengo una lista de funciones y necesito agregar "();" a cada línea, pero cada nombre de función tiene un ancho diferente. Actualmente estoy usando una macro para hacer esto, ¡gracias!
SSH Este

5
para añadir, probablemente sea mejor usar simplemente buscar / reemplazar usando el modo de búsqueda "Extendido". Puede buscar el final de línea, por ejemplo, \r\ny reemplazarlo con<whatever you want to append>\r\n
Peter Perháč

Esta es realmente una gran solución, especialmente con el comentario ANEXO anterior.
Chuck Le Butt

2
Esto es útil para prefijar, pero no tanto si desea postfijar líneas de longitud mixta (anexar al final). Ojalá Notepad ++ tenga un comando incorporado "Modificar líneas" como en Notepad2, que le permite seleccionar las líneas, presionar Alt + M y agregar texto antes y / o después de cada línea.
jueves

21

Expresión regular que se puede utilizar:

Find: \w.+
Replace: able:"$&"

Como, $&le dará la cadena que busca.

Refiera: regexr


6
¡Gran mención de $&! El \1no funciona en todos los ambientes.
pfabri

Gran respuesta sobre $&. También funciona en SublimeText.
WesternGun

Gran respuesta sobre $&. También funciona en código VS.
P. Frank

5

Utilice una macro.

Macro> Iniciar grabación

Utilice el teclado para realizar sus cambios de forma repetible, p. Ej.

inicio> escriba "capaz"> final> flecha hacia abajo> inicio

Luego regrese al menú y haga clic en detener grabación y luego ejecute una macro varias veces.

¡Eso debería ser suficiente y sin complicaciones basadas en expresiones regulares!


4
¿Qué se supone que significa "complicaciones"? :-)
Tomalak

+1 para facilidad de uso. Necesitaba agregar una 'pestaña' al final de cada línea en un archivo y este consejo funcionó.
NateJ
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.