Dopo un po’ di ricerche sono riuscito a trovare come in ASP (vbscript) si possa sostituire (replace) del testo da una stringa, utilizzando le regular expression.
In coldfusion era una funzione che mi ero fatto troppo utile: rimuoveva tutto l’HTML da un testo, convertendolo in plain/text. Questo mi permetteva di creare un incipit del testo senza rischiare di fare danni strutturali all’HTML.
Nel sito somacon ho trovato la soluzione, ma l’ho convertità in Function per una maggiore elasticità e comodità di utilizzo.
Function ReplaceAllByExpression(StringToExtract, MatchPattern, ReplacementText)
Dim regEx, CurrentMatch, CurrentMatches
Set regEx = New RegExp
regEx.Pattern = MatchPattern
regEx.IgnoreCase = True
regEx.Global = True
regEx.MultiLine = True
StringToExtract = regEx.Replace(StringToExtract, ReplacementText)
Set regEx = Nothing
ReplaceAllByExpression = StringToExtract
End Function
I parametri sono semplici:
- StringToExtract: il testo da trattare
- MatchPattern: il pattern della Regular Expression
- ReplacementText: la stringa da sostituire alle sottostringhe individuate dal pattern
E le jeux sont fait!
Grazie 1000 per l’articolo 😉
a buon rendere
Eddecheahò!
Ciao, mi sa che arrivo in ritardo, ma mi chiedevo se posso utilizzare questa regexp per sostituire variabili: ho un testo tipo
Scusami ma non ho capito cosa devi fare. Puoi inviare un paio di esempi con stringa sorgente e stringa finale?
Oppure beccati questo: http://gskinner.com/RegExr/
Ciao Merlinox grazie per la risposta!
Abbiamo un db x le traduzioni e quando in un record è presente una variabile, vuol dire che quella variabile andrà sostituita con un valore dinamico nella pagina. Se per esempio ho una stringa db come ” buongiorno %%nome%% come stai?”, la regexp dovrebbe(come nell’esempio da te proposto) leggere il valore all’interno dei 4 simboli percentuali e sostituirla con un altro valore X della pagina. Spero di essermi spiegato bene :))
Quindi dovrei avere
–db
testo = ‘Ciao %%nome%% come stai?’
–benvenuto.asp
var1 = ‘Matteo’
var2 = db.testo
txtwelcome = ReplaceAllByExpression(var2, ???, var1)
Ecco, dove ho messo i punti interrogativi mi blocco!
Perdonami, magari mi sto perdendo in un bicchier d’acqua!
Grazie comunque
Matteo