Immaginate di avere una stringa lunga contenente le sottostringhe 'gatto' e 'cane' oltre ad altri caratteri casuali, ad es.Problema di corrispondenza del modello di stringa
cat x dog cat x cat x dog x dog x cat x dog x cat
Qui "x" rappresenta qualsiasi sequenza casuale di caratteri (ma non "gatto" o "cane").
Quello che voglio fare è trovare ogni "gatto" seguito da qualsiasi carattere tranne "cane" e poi "gatto". Voglio rimuovere quella prima istanza di "gatto" in ogni caso.
In questo caso, vorrei rimuovere la parentesi [gatto] perché non esiste un 'cane' dopo che prima del prossimo 'gatto':
cat x dog [cat] x cat x dog x dog x cat x dog x cat
per finire con:
cat x dog x cat x dog x dog x cat x dog x cat
Come si può fare?
ho pensato a qualche modo utilizzando un'espressione regolare come (n) (? = (N)) come VonC raccomandato here
(cat)(?=(.*cat))
per abbinare tutte le coppie di 'gatto' nella stringa. Ma non sono ancora sicuro di come potrei usarlo per rimuovere ogni gatto che non è seguito da "cane" prima di "gatto".
Il vero problema che sto affrontando è in Java. Ma in realtà sto solo cercando una soluzione pseudocodice/regex generale.
Hi. Sarebbe utile sapere in quale lingua stai lavorando. –
@klausbyskov: sei sicuro di questa modifica? Le seguenti due frasi e l'esempio mi sembrano indicare che "seguito" è davvero ciò che intendeva. –
Intendevo "seguito" non preceduto! – nodmonkey