Sostituire testo in ASP con le RegExp

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!

Loading Facebook Comments ...

5 pensieri su “Sostituire testo in ASP con le RegExp

  1. Matteo

    Ciao, mi sa che arrivo in ritardo, ma mi chiedevo se posso utilizzare questa regexp per sostituire variabili: ho un testo tipo

    “benvenuto %%nome%%” e devo sostituirlo con la variabile $nome = “matteo”; Non sono riuscito a trovare in rete la soluzione per dirgli cerca all’interno di %% e %% . Tu mi sapresti aiutare?
    Grazie in anticipo 😉

    Rispondi
      1. Matteo

        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

        Rispondi

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *