PDA

View Full Version : Eliminare stringa compresa tra due tags


robertino_salemi
24-10-2014, 16:54
Buon dì a tutti,
ho delle stringhe del tipo

[ID] - Titolo pagina


dalla stringa sopra dovrei eliminare "[ID] - " come fare?

Ho visto che dovrei usare preg_replace, ma come? Non riesco a costruire il mio pattern.

Esiste un tool online?

Grazie.

cicciopasticcio1
24-10-2014, 17:09
http://www.phpliveregex.com/p/7FF

Daniels118
27-10-2014, 13:38
Oltre al tool indicato che è sicuramente utile, se vuoi un aiuto sulla costruzione dell'espressione regolare dovresti specificare esattamente come sono costruite le varie parti della stringa (per esempio "[ID]" rappresenta un numero, o un numero tra parentesi quadre? Oppure un codice alfanumerico?).
Inoltre se indicassi il linguaggio si potrebbero proporre anche soluzioni più semplici (per esempio la funzione split).

robertino_salemi
27-10-2014, 14:50
Oltre al tool indicato che è sicuramente utile, se vuoi un aiuto sulla costruzione dell'espressione regolare dovresti specificare esattamente come sono costruite le varie parti della stringa (per esempio "[ID]" rappresenta un numero, o un numero tra parentesi quadre? Oppure un codice alfanumerico?).
Inoltre se indicassi il linguaggio si potrebbero proporre anche soluzioni più semplici (per esempio la funzione split).

Danieles, hai ragione, si tratta di PHP.

ID è un numero dinamico...non noto.

Ho comunque risolto grazie alla segnalazione di un altro utente:

$p = "/\[[^\]]*\]/m";

$my_edit_string = preg_replace($p,'',$my_string);


;)

Daniels118
27-10-2014, 15:25
Bene, comunque se non vuoi scomodare le espressioni regolari puoi fare così:
$my_edit_string = explode(' - ', $my_string, 2)[1];

robertino_salemi
27-10-2014, 15:27
Esatto, ci avevo pensato anche io.
Ma nel caso in cui inserisco un titolo del tipo:
"Lavoro - Esperienza nel settore"...
sarebbe un problema!

;)

Daniels118
27-10-2014, 15:31
No, se la stringa comincia sempre con "[ID] - " il problema non esiste, infatti quel "2" nella chiamata alla funzione explode indica che la stringa deve essere divisa al massimo in due sottostringhe, per cui la stringa
"13 - Lavoro - Esperienza nel settore"
viene divisa sempre in
"13" e "Lavoro - Esperienza nel settore"
Come vedi il titolo è rimasto intatto.

robertino_salemi
27-10-2014, 16:54
Esatto,
grazie! ;)

cicciopasticcio1
28-10-2014, 14:18
Danieles, hai ragione, si tratta di PHP.

ID è un numero dinamico...non noto.

Ho comunque risolto grazie alla segnalazione di un altro utente:

$p = "/\[[^\]]*\]/m";

$my_edit_string = preg_replace($p,'',$my_string);


;)

Ma il link che ho mandato l'hai visto almeno? Ti avevo scritto sia l'espressione regolare che cercavi sia la sua implementazione in PHP attraverso preg_replace, cioè, ci ho messo pure gli esempi nel formato che volevi, bastava aprirlo per rendersene conto. Mbah. :stordita:

robertino_salemi
28-10-2014, 17:15
Certo, mi sono basato anche della tua segnalazione.

Scusami se non l'ho specificato nel post.

Grazie.