Regex converte il testo in numeriHo una proprietà elencata in una colonna (in questo caso Dispositivo) che contiene una stringa. Da qualche parte all'interno della stringa c'è un riferimento a un valore numerico che devo estrarre e convertire in un numero effettivo.
La formula seguente funziona, ma sembra che si possa fare in un modo molto più semplice.
Regex( Substr( :Device, 6 ), "K", "000", GLOBALREPLACE )
In questo caso, qualsiasi istanza di 1K viene sostituita da 1000.
Ciao
Testa della chiave inglese
Automazione e scriptingRe: Regex converte testo in numeri
questo potrebbe essere fatto in un modo molto più semplice
Cosa ritieni sia così semplice?
Re: Regex converte testo in numeriJarmo
Num( Regex( :Device, "(\d+)K", "\1" ) ) * 1000
Questo?
Ciao
Testa della chiave inglese
Re: Regex converte testo in numeriQuindi... usa quello...? Questi sono altamente specifici per i tuoi dati e la tua applicazione (ad esempio di solito "k" sarebbe kilo e non "K")
Se devi convertire dei numeri scritti come stringhe in numeri, direi che non esiste una soluzione semplice (un buon esempio potrebbe essere Excel, che presuppone qualcosa e rovina completamente i tuoi dati in modo irreversibile).
Re: Regex converte testo in numeriEcco un semplice esempio che utilizza JSL
names default to here(1);
dt = New Table( "example",
Add Rows( 2 ),
New Column( "val", Character, "Nominal", Set Values( {"1K", "5K"} ) )
);
wait(5);
// Convert the values
for each row(
:val = Substitute(:val,"K","000")
);
wait(0);<BR /><BR />// Change column to numeric
dt:val << data type(numeric)<<MODELING type=""></MODELING>Re: Regex converte testo in numeriJarmo
Tutte queste cose funzionano e hai ragione, il mio problema è molto specifico, può capitare a volte alle persone. La soluzione a cui ho fatto riferimento si incastra nei miei dati se c'è più di una lettera K (di default è maiuscola nel mio output di dati standard).
Grazie comunque
Ciao
Testa della chiave inglese