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?

zuk1
fuente
¡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.

Jonathan Lonowski
fuente
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.

Peter Perháč
fuente
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

Mukul Aggarwal
fuente
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!

Rob Stevenson-Leggett
fuente
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