"-dhello;-egoodbye;-lcul8r" -replace "-d.*;","-dbonjour;"
dà:E 'possibile sostituire Regex in modo non avido?
-dbonjour;-lcul8r
E 'possibile non farlo sbarazzarsi di goodbye
?
"-dhello;-egoodbye;-lcul8r" -replace "-d.*;","-dbonjour;"
dà:E 'possibile sostituire Regex in modo non avido?
-dbonjour;-lcul8r
E 'possibile non farlo sbarazzarsi di goodbye
?
È necessario effettuare l'abbinamento pigro utilizzando ?
.
Usa:
"-dhello;-egoodbye;-lcul8r" -replace "-d.*?;","-dbonjour;"
Sempre essere esplicito. .*
corrisponde tutto il possibile (compreso il punto e virgola e tutto ciò che segue), ma si desidera solo corrispondere fino alla prossima punto e virgola, quindi basta dire al motore regex che:
"-dhello;-egoodbye;-lcul8r" -replace "-d[^;]*;","-dbonjour;"
[^;]
corrisponde a qualsiasi carattere tranne punto e virgola.
Anche se questo funziona in questo caso, era solo un esempio. Stavo davvero cercando un interruttore per spegnere l'avidità. Ma, grazie, è ancora un consiglio utile. – muhmud
@muhmud: sicuro. Volevo solo esprimere che l'ungreedy non significa necessariamente "la partita più breve possibile". Lo ottieni solo quando specifichi esattamente quale potrebbe essere il contenuto della partita. Ad esempio, '<.*?>' corrisponderà a '
Esattamente quello che stavo cercando, grazie! – muhmud