50 messaggi dal 11 settembre 2003
Ciao a tutti.
Devo fare uno script che taglia la maggior parte dei tag html da un testo tranne <br>,<b></b>,<u></u>...
La soluzione ideale sarebbe scrivere una bella regular expression.
Ci ho provato ma non ne capisco molto...

Questa regola dovrebbe tagliare tutti i tag: /<[^>]*>/gi
Ma come faccio a dirgli di escludere i seguenti: <br>,<b></b>,<u></u>....?

Qualcuno mi potrebbe aiutare?
Grazie!!

La guerra è il massacro di persone che non si conoscono, per conto di persone che si conoscono ma non si massacrano..
Questa becca tutti i tag HTML e XML con o senza attributi:
</?(\w+)(\s*\w*\s*=\s*("[^"]*"|'[^']'|[^>]*))*|/?>

Ciao, Ricky.

Ing. Riccardo Golia
Microsoft MVP ASP.NET/IIS
ASPItalia.com Content Manager
http://blogs.aspitalia.com/rickyvr
http://ricky.aspitalia.com
http://www.riccardogolia.it
50 messaggi dal 11 settembre 2003
Ciao,
Riuscivo anche prima a rimuovere tutti i tag.
Il mio problema è di escludere dal matching(quindi successivamente non rimuovere con il replace) alcuni tag come <b></b> , <br> , <u></u>...

Suggerimenti?

La guerra è il massacro di persone che non si conoscono, per conto di persone che si conoscono ma non si massacrano..
Scusa, avevo letto male...
Niente paura, ti do ugualmente la soluzione che si chiama: MatchEvaluator!!!

Usa questa firma per il metodo Regex.Replace:
Overloads Public Shared Function Replace(ByVal input As String, ByVal pattern As String, ByVal evaluator As MatchEvaluator) As String

Il MatchEvaluator non è altro che un delegate chiamato ogni volta che si verifica un match per gestire in modo custom la sostituzione. Quindi tu puoi verificare il match ed evitare la sostituzione nel caso dei tag che non vuoi eliminare.

Ecco un veloce esempio in VB.NET:

'...
Dim eval As MatchEvaluator = New MatchEvaluator(AddressOf EvaluateMatch)
input = r.Replace(input, pattern, eval)
'...
Public Function EvaluateMatch(ByVal m As Match) As String
'...
End Function


Spero che basti.

Ciao, Ricky.

Ing. Riccardo Golia
Microsoft MVP ASP.NET/IIS
ASPItalia.com Content Manager
http://blogs.aspitalia.com/rickyvr
http://ricky.aspitalia.com
http://www.riccardogolia.it

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.