Blocco note ++ Tentativo di aggiungere un carattere SOLO dopo il primo spazio in ogni riga


2

Ho 30.000 righe di testo che contengono un numero limitato di spazi. Devo aggiungere un personaggio solo al primo SPAZIO in ogni riga. Chiunque possa suggerire qualcosa sarebbe molto apprezzato.


Si prega di modificare e di fornire prima e dopo esempi. Alcune righe per ciascuna dovrebbero essere sufficienti.
David Post

Risposte:


1
  • Ctrl+H
  • Trovare cosa: ^\S+\h\K
  • Sostituirlo con: %
  • seleziona Avvolgi
  • seleziona Espressione regolare
  • Replace all

Spiegazione:

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

Sostituzione:

%           # the character to insert

Dato:

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.

Risultato per un esempio dato:

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.

inserisci qui la descrizione dell'immagine


0

Prova TextPad. È possibile registrare macro e quindi riprodurle. Quindi registra cosa vuoi fare per la prima riga e dopo aver completato la prima riga, lascia il cursore all'inizio della riga successiva. Quindi riproduci la macro fino alla fine del file. O semplicemente tieni premuto il tasto macro play.

https://www.textpad.com/


Grazie, ci ho provato ma SPACE non è sempre nello stesso posto sulla linea. La macro conta semplicemente i movimenti prima di aggiungere il personaggio, non cerca lo SPAZIO in ogni riga. Othe.rwise che avrebbe funzionato bene
David Williams l'

Puoi cercare lo spazio nella tua macro. Fallo semplicemente cercando quando registri la tua macro.
Dale,

Grazie Dale, ha funzionato bene. Devo solo imparare a pensare lateralmente ora. -)
David Williams l'

Eccezionale. Ho dovuto farlo tonnellate di volte per pulire i dati. Per favore, segna la mia risposta. :)
Dale,

Oh Dale, controlla la mia risposta, perché se hai usato una macro come quella più volte potresti essere interessato a conoscere tu stesso la gioia delle espressioni regolari.
Wolfkin,

0

Quello che stai cercando sono le espressioni regolari. La prima cosa che vorrai fare è trasformare la tua ricerca in espressioni regolari

inserisci qui la descrizione dell'immagine

Gioia da provare perché penso di sapere esattamente come risolverlo

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

L'espressione che desideri è:
Trova: (^.*?)( )
Sostituisci:\1#\2

Il modo in cui funziona è come segue nelle espressioni regolari il ()mezzo "cattura". Ciò significa che troverà questo gruppo altamente specifico e quindi puoi fare riferimento ad esso nella sostituzione con \ 1 o \ 2 o \ 3. Il numero inizia da 1 e si contano dalla paratesi aperta

^significa iniziare dall'inizio della riga. (Perché vuoi che il tuo inserto copra il PRIMO spazio è quello che cercheremo partendo dalla parte anteriore trova il primo spazio)

.*?questa parte trova la prima parola davanti allo spazio. Lo fa creando in un gruppo qualsiasi carattere ( .) il maggior numero possibile ( *) ma il meno necessario ?. Senza il punto interrogativo catturerai solo ogni personaggio (inclusi tutti gli spazi)

( )questa parte significa che il nostro secondo gruppo è lo spazio dopo il primo. Questo dovrebbe essere il primo spazio. Questo è ciò che vogliamo inserire il nostro personaggio.

La sostituzione

\1#\2

\1si riferisce al primo set di caratteri. E l' *espressione indica che il set di caratteri può essere una parola di qualsiasi lunghezza, incluso 0.

# è il carattere di inserimento

\2\ è ovviamente lo spazio.

Il risultato sta mettendo un #davanti a ogni primo spazio. Se lo vuoi DOPO il primo spazio è semplice come regolare la sostituzione

\1\2#inserirà il #dopo ogni primo spazio per riga.


Questo è il potere delle espressioni regolari. Una semplice ricerca e sostituzione può eseguire l'inserimento in modo più preciso rispetto a qualsiasi macro. È flessibile, è veloce e il più delle volte non è così difficile.

Ecco un ottimo tutorial per iniziare che dovrebbe spiegare cos'è RegEx e perché è utile. [ RegExOne ]. REO è quello che mi ha fatto capire

Questo è un tutorial che molte persone raccomandano che onestamente non potrei avere molto senso. [ RegEx.Info ]

In realtà non sono mai tornato su RegEx.info. Sono passato direttamente alla documentazione di Notepad ++, che in realtà è stata molto utile a questo punto. Questo e ovviamente puoi provare con [ RegEx101 ]. L'unica cosa che vorrai fare è aggiungere /gml'espressione. Quindi puoi semplicemente incollare uno snippet in TestString ed esercitarti fino a quando non lo ottieni correttamente.

inserisci qui la descrizione dell'immagine

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.