Come ottenere i caratteri tra parentesi all'interno di una stringa??Ciao a tutti,
Ho una stringa come di seguito " [CDO600705010] [S 88ABCV AB IT] [C23204348IT] "
Sai come inserire i caratteri tra parentesi aperte e chiuse?
Ad esempio:
CDO600705010
S88ABCV AB IT
C23204348IT
Cordiali saluti
Modellazione statistica avanzataRicerche sui consumatori e sul mercatoAccesso ai datiRi: Come ottenere i caratteri tra parentesi all'interno di una stringa??Sceglierei sicuramente Word() o Words() con questo, ma in JMP esiste un modello di carattere . È abbastanza difficile da imparare e potrebbe avere un utilizzo un po' limitato rispetto ai metodi più semplici (non mi sono preso la briga di impararlo). Script modificato da uno script trovato da Re: Estrai testo dalla stringa (il post contiene anche la spiegazione della corrispondenza)
Names Default To Here(1);
// see https://community.jmp.com/t5/Discussions/Extract-text-from-string/td-p/450420
txt = " [CDO600705010] [S 88ABCV A B IT] [C23204348IT] ";
sp = Pat Span("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890 ");
found_list = {};
Pat Match(
txt,
"[" + sp >> match + ("]") + Pat Test(
Insert Into(found_list, match);
0;
)
);
show(found_list);
// found_list = {"CDO600705010", "S 88ABCV A B IT", "C23204348IT"};
Ma la corrispondenza tra più parentesi potrebbe essere un luogo in cui potrei vedermi utilizzare i modelli di caratteri.
Vedere anche Guida allo script > Tipi di dati > Corrispondenza modelli
Re: Come inserire i caratteri tra parentesi all'interno di una stringa??Word() è la funzione che ogni utente JMP dovrebbe conoscere.
Se impari solo una funzione dell'editor di formule, Word() è quella giusta
Re: Come inserire i caratteri tra parentesi all'interno di una stringa??Mi piace l'approccio di @txnelson . Lo uso spesso. Le funzioni dei personaggi sono utili!
Ecco invece un altro approccio che utilizza Regex(). Non è una soluzione. È un'illustrazione di come potresti analizzare ciascuna stringa. Mostro due modelli di ricerca, ma sono possibili altri modelli. Mi chiedo quale sia il modo più veloce, poiché potrebbe essere una considerazione con molti vincoli.
Names Default to Here( 1 );
string = { "[CDO600705010]", "[S 88ABCV A B IT]", "[C23204348IT]" };
n = N Items( string );
For( s = 1, s <= n, s++,
Show(
Regex( string[s], "([\w\d\s]+)", "\1" );
);
);
For( s = 1, s <= n, s++,
Show(
Regex( string[s], "[^\-[\]]+" );
);
);
Re: Come inserire i caratteri tra parentesi all'interno di una stringa??Sorprendente! Apprezzo Funziona come un miracolo
Re: Come inserire i caratteri tra parentesi all'interno di una stringa??s=" [CDO600705010] [S 88ABCV A B IT] [C23204348IT] ";
one = word(2,s,"[]");
show(one);
/*:
one = "CDO600705010";