Salve a tutti ho un quesito che appassionerà i fans delle espressioni regolari. Premesso che le conosco davvero poco (volevo rimandare il loro studio a quando imparerò perl ma ormai non ne posso fare a meno :P).
La domanda è la seguente:
Data una stringa devo fare delle sostituzioni.
In particolare devo sostituire:
str1 con nuovastr1 (so sempre dove sta e quindi è facile)
str2 con nuovastr2 (separata da str1 da un numero arbitrario di caratteri [anche zero]).
Inoltre
La seconda sostituzione deve fare in modo che vengano mantenuti TUTTI i caratteri nella loro esatta posizione tra str1 e str2. Inoltre è probabile che str2 si ripeta nella stringa di partenza e quindi devo ottenere una corrispondenza minima per la sostituzione.
Son stato confusionario ma ora faccio un esempio pratico:
Ho la seguente stringa e devo formattare in html (concentriamoci sul tag aperto tabel, il resto sn felici oppure son uguali):
[table style='background-color:#0000ff;color:#ff0000;'][tr][td]ciaoooooo[/td][/tr][/table]
devo ovviamente sostituire [table con <table e poi devo sostituire ] con > mantenendo però l'attributo style specificato (in modo che lo style mi venga applicato alla tabella una volta in output). Ovviamente io non so se c'è lo style e non so se è separato da zero, uno o più spazi da table, non so neanche se oltre allo style ci sia qualche altro attributo (vedi class o id o qualsiasi altra roba). Come faccio a fare in modo che mi venga presa tutta quella stringa e messa nella replace? (Vorrei evitare di contare la prima occorrenza di ] in modo da inizia ad usare qst sconosciute espressioni regolari.
Che dite vi ho incuriosito? Me la date una mano? Grazie a chi mi risponderà!!