Espressioni regolari: un regex classico

Mi diverto molto a fare lo scraping di pagine web ma alcune volte il risultato non è quello atteso, cioè il riuso dei dati non è immediato e quindi occorre una ulteriore manipolazione dei dati.

Ieri ho estratto una tabella da un sito web e il risultato si presenta cosi:

per lavorarci occorre che sia in un formato classico csv, cioè cosi:

il problema si risolve molto rapidamente nel seguente modo:

Notepad++
  • (\r\n)([0-9]{1,})

creo due gruppi, quelli tra parentesi tonde, nel primo seleziono l’a capo (\r\n) e con il secondo i numeri che seguono ([0-9]{1,}):

selezione a capo seguito da numeri

ogni gruppo diventa una variabile numerica: il primo gruppo è $1, il secondo è $2; quindi nel sostituire la selezione devo dirgli: sostituisci ad a capo la virgola seguita dal secondo gruppo $2, cioè ,$2

trova e sostituisci
gif animata – wow

tutto qui! semplice e lineare.

fonti:

Ringraziamenti:

Andrea Borruso : https://twitter.com/aborruso?lang=it

gruppo Telegram HfcQGIS

EDIT: soluzione da riga di comando, sempre by Andrea

<input.csv tr -d ‘\r\n’ | sed -r ‘s/([0-9]{1,})/,\1\n/g’

dove:

<mah.csv tr -d ‘\r\n’

rimuovi tutti gli a capo;

lo passi in pipe a sed e sostituisci ogni gruppo di numeri ([0-9]{1,}) con un virgola, seguita dal gruppo di numero seguito da a capo ,\1\n

Pubblicità

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo di WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione /  Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione /  Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione /  Modifica )

Connessione a %s...

Questo sito utilizza Akismet per ridurre lo spam. Scopri come vengono elaborati i dati derivati dai commenti.