2013-01-23 16 views
9

Sto tentando di aggiungere del testo (ad esempio "Pesce") alla fine di ogni riga in un file utilizzando Visual Studio o SQL Server Management Studio utilizzando le seguenti impostazioni nella finestra di dialogo Trova/Sostituisci:

  • Trova: $
  • sostituire con: Pesce
  • utilizzare le espressioni regolari: Controllato

Questo fa in gran parte il lavoro , ma per una manciata di linee non aggiunge solo "Pesce" alla fine della riga, ma lo colloca anche all'inizio della linea. Non riesco a distinguere alcun modello per questo comportamento sembra essere quasi casuale, con il più grande è il file più linee tendono a sbagliare.

Un simile find/replace con^(per inserire il testo all'inizio della riga) funziona senza problemi.

Qualcuno sa perché questo sta accadendo? E inoltre, ci sono suggerimenti migliori per ottenere ciò che voglio?

+2

Perché non usare '\ n '? E sostituisci con 'Fish \ n' – cheesemacfly

+0

@cheesemacfly - che risolve anche il problema, anche se è leggermente fuori campo perché non corrisponderà all'ultima riga del file se non finisce con una nuova riga! –

risposta

10

non sono sicuro perché si sta vedendo, ma si potrebbe provare qualcosa di simile:

Find: ^.*$ 
Replace: \0Fish 
+0

Beh, sembra che faccia il lavoro, l'ho provato un paio di volte e nessun errore, ma non sono sicuro del perché stia succedendo in primo luogo. Sei riuscito a riprodurre il comportamento che descrivo sopra? Mi sembra di ricordare che questo accade su più versioni VS risalenti a 6.0 quindici anni fa ... –

+2

@metal ["Ancorare la stringa di confronto alla fine di una riga" è ora \ r? $] (Http: // msdn. microsoft.com/en-us/library/2k3te2cs.aspx) –

+2

In VS 2015, ho dovuto usare '$ 0' anziché' \ 0' per il primo gruppo corrispondente. – jstricker

9

Questo funziona in Visual Studio 2012 e il 2015:

Find: \r 
Replace: Fish\r 

Assicurati di spuntare 'usare espressioni regolari' casella di controllo:

Replace panel

+0

Sembrava buono, ma in realtà non del tutto completamente ideale, perché (a) non funziona sull'ultima riga del file, e (b) il \ r viene effettivamente sostituito in modo tale che tutte le terminazioni sostituiscano il solito \ r \ n con semplicemente \ n. Potresti arrotondare (b) usando "Pesce \ r" come testo sostitutivo, immagino ... –

+0

@Stephen Hai ragione, ho aggiornato la mia risposta. –

+0

Questo non funziona più in VS 2015. – cardinalPilot

Problemi correlati