Problema con RegEx

Summerwind78
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
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
Studente Anonimo
Studente Anonimo
Già provato con

/(?<=[^%])%1/g

:?:

http://refiddle.com/gdi (click su Play, poi sul pannello Replace in basso, Play, per vedere i risultati della sostituzione).

Summerwind78
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

Studente Anonimo
Studente Anonimo
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.

Summerwind78
sembra funzionare bene, grazie

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

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.