Problema con RegEx
Ciao a tutti,
avrei bisogno di un suggerimento per quanto riguarda l'uso delle espressioni regolari
sto facendo un programma in VB.NET e ogni tanto uso le RegEx per gestire le stringhe
adesso mi trovo nella condizione in cui se all'interno di una variabile stringa ho la sequenza di caratteri "%1" questa deve essere sostituita con una altro carattere, diciamo per esempio "H"
quindi se nella variabile stringa ho "La lettera %1 è una acca" una volta effettuato il replace io ottengo "La lettera H è una acca"
per fare questo uso
e fino a qui tutto ok
ora ho bisogno che se invece di avere "%1" ho "%%1", nella stringa mi compaia "%1" dopo il replace quindi se ho
"La lettera %%1 è una acca" ottengo "La lettera %1 è una acca"
c'è modo con una sola funzione replace di fare un modo che mi sostituisca "%1" con "H", ma se trova "%%1" non faccia nulla in modo che io dopo possa sostituire "%%" con "%"?
Grazie a tutti
avrei bisogno di un suggerimento per quanto riguarda l'uso delle espressioni regolari
sto facendo un programma in VB.NET e ogni tanto uso le RegEx per gestire le stringhe
adesso mi trovo nella condizione in cui se all'interno di una variabile stringa ho la sequenza di caratteri "%1" questa deve essere sostituita con una altro carattere, diciamo per esempio "H"
quindi se nella variabile stringa ho "La lettera %1 è una acca" una volta effettuato il replace io ottengo "La lettera H è una acca"
per fare questo uso
dim myStr as string = "La lettera %1 è una acca" myStr = regex.replace(myStr,"%1","H")
e fino a qui tutto ok
ora ho bisogno che se invece di avere "%1" ho "%%1", nella stringa mi compaia "%1" dopo il replace quindi se ho
"La lettera %%1 è una acca" ottengo "La lettera %1 è una acca"
c'è modo con una sola funzione replace di fare un modo che mi sostituisca "%1" con "H", ma se trova "%%1" non faccia nulla in modo che io dopo possa sostituire "%%" con "%"?
Grazie a tutti
Risposte
Già provato con
http://refiddle.com/gdi (click su Play, poi sul pannello Replace in basso, Play, per vedere i risultati della sostituzione).
/(?<=[^%])%1/g

http://refiddle.com/gdi (click su Play, poi sul pannello Replace in basso, Play, per vedere i risultati della sostituzione).
grazie stan,
no non avevo ancora provato, non sono così tanto ferrato con le regex
ho imparato qualcosina ma mi manca una conoscenza approfondita
grazie mille
no non avevo ancora provato, non sono così tanto ferrato con le regex
ho imparato qualcosina ma mi manca una conoscenza approfondita
grazie mille
Nemmeno io per la verità, conosco a malapena le basi. 
In ogni caso, fa degli ulteriori test, perché non ho considerato tutti i casi e non so nemmeno come funzionano/usano le regex in .NET.

In ogni caso, fa degli ulteriori test, perché non ho considerato tutti i casi e non so nemmeno come funzionano/usano le regex in .NET.
sembra funzionare bene, grazie
per vb.net, se ti servisse, importi system.text.regularexpression
e poi usi per esempio
penso mi farò una bella cultura perchè sono davvero utili
Ciao
per vb.net, se ti servisse, importi system.text.regularexpression
e poi usi per esempio
strOut = regex.replace(strIn,"/(?<=[^%])%1/g", "H")
penso mi farò una bella cultura perchè sono davvero utili
Ciao