Non credo tu possa trovare facilmente un'espressione regolare che soddisfa interamente la tua logica. Per cominciare, è estremamente complesso dirgli di separare sempre secondo la virgola ma non quando incontra una "h". E se anche tu riuscissi a dirglielo, come fai a dirgli di "ricominciare a separare"? Quale dovrebbe essere il criterio secondo il quale dovrebbe cominciare nuovamente a separare? Negli esempi che hai fatto c'è sempre un ", false" alla fine... è sempre così?
Secondo me dovresti andare per passi: prima gli fai separare tutto secondo la virgola o il punto e virgola, e poi fai le tue considerazioni scorrendo l'array: quando trovi la lettera "h" sai che devi concatenare tutto il resto in un'unica stringa finchè continui a trovare coppie <chiave = valore>. Del resto non hai tante alternative.
Non so se sia ammesso, ad esempio questo caso:
"f,h c = red , d = blue ; e = black , p, false"
Come fai a sapere che dopo "black" non devi più concatenare?
Altro esempio, che non so se sia ammesso nel tuo input:
"f,p,h c = red , d = blue ; e = black ,false, true"
Come fai a sapere che dopo "black" non devi più concatenare?
Ciao.![]()



Rispondi quotando