Salve a tutti,

ho un problema nel dividere una stringa in piu' parti, in modo da rielaborarla e ricostruirla in seguito. Questi sono dei possibili esempi di stringhe:

Pippo + Pluto (Paperino - Paperoga)
Paperon de' Paperoni - Gastone (Qui + Quo + Qua)

Allora: io voglio dividere la stringa usando come delimitatori +, -, ( e ). La sequenza di questi quattro caratteri non e' fissa, non esistono altri possibili e non e' detto che ci siano tutti. Ogni sottostringa viene cercata in un database, e se e' presente, viene aggiunto un link ad un sito web.

Al momento ho visto 3 soluzioni:

- strtok($stringa_originale, "+-()");
- split('[)+(-]', $stringa_originale); // usando le regular expression
- un metodo ricorsivo di explode() che al momento e' un po' difficile dirlo;

I primi due metodi funzionano alla perfezione, pero' non riesco a sapere quale dei quattro delimitatori e' stato usato e non posso ricostruire la stringa nel modo giusto.

Per esempio: Pippo + Pluto (Paperino - Paperoga) mi ritorna un array con: 0=> Pippo, 1=> Pluto, 2=>Paperino, 3=>Paperoga. Pero' in questo modo, non so piu' quale dei delimitatori e' stato trovato e quindi non saprei come rimetterlo.

L'unica che mi viene e' che per ogni stringa dell'array, cerco il primo carattere non di spaziatura successivo (quindi per Pippo e' +, per Pluto e' (, etc...)

Qualcuno ha capito quello che ho detto e ha una soluzione migliore? (Se rispondete si' alla prima domanda, siete gia' dei maghi...)

Ciao a tutto il forum....
Dave