Ho una stringa con un prefisso seguito da un elenco di almeno un suffisso eventualmente vuoto. I suffissi stessi sono preceduti da due punti. Né il prefisso né il suffisso devono contenere due punti.
Esempio (1) per un suffisso vuoto:
x:
Esempio (2) per due suffissi non vuoti ("a" e "b") e un suffisso vuoto:
x:a::b
Il espressione regolare per questo modello è:
([^:]+)(:([^:]*))*
La prima partita cattura il prefisso e la partita (3 + 2n) th cattura i suffissi (n = [0,1,2, ...]).
Nella mia sostituzione vorrei aggiungere un prefisso a ciascun suffisso. L'esempio (1) dovrebbe produrre:
x
E l'esempio (2) dovrebbe produrre:
xa
x
xb
Come devo specificare l'espressione sostitutiva?
Il mio problema è che il primo rimpiazzo mangiail prefisso E dopo questo il secondo sostituto non vede più il prefisso. Devo conservare il prefisso per le restanti sostituzioni. Come si può fare?
risposte:
1 per risposta № 1Penso che estrarre prima il prefisso e poi fare il secondo sostituto. Renderà il codice più facile da leggere e dovrebbe essere facilmente sostituibile a quel punto.