Fonction supprimant les tags sgml avec les expressions régulières

Soyez le premier à donner votre avis sur cette source.

Snippet vu 8 389 fois - Téléchargée 35 fois

Contenu du snippet

Cette fonction supprime tout code du type <nomBalise>, <nomBalise/>, </nomBalise> d'une chaine passée en parametre et retourne la chaine épurée. Les balises épurées peuvent contenir ou non des attributs. Elle me sert a supprimer tout balisage HTML.

Source / Exemple :


function delTag(strg)
	Dim regEx
	set regEx = new regExp
	regEx.IgnoreCase = True
	regEx.Pattern = "^</*([^<>\s]*)(\s[^<>]*)?>|<([^<>\s]*)(\s[^<>]*)?/*>"
	while regEx.Test(strg)
		strg = regEx.Replace(strg, "")
	wend
	deltag = strg
end Function

Conclusion :


Si vous connaissez mieux, ou trouvez des bugs dites le moi

A voir également

Ajouter un commentaire

Commentaires

Messages postés
388
Date d'inscription
lundi 7 juillet 2003
Statut
Webmaster
Dernière intervention
10 février 2009

Salut Denis,

je ne suis pas expert en expression régulière, c'est en cherchant quelque cours et sur le net que j'ai pu créer cette fonction qui m'est très utile.

essaye le '\(' pour placer ton '(' et '\)' pour ')' sans les quotes , l'\' permet d'echapper un caractere donc si j'ai bien compris pour utiliser un metacaractere du doit l'echapper.

Prevenez moi si je me trompe.

Bon courage et j'espere t'avoir donner une bonne piste

nicolas
Messages postés
31
Date d'inscription
jeudi 12 juin 2003
Statut
Membre
Dernière intervention
13 avril 2008

Rebonjour,

Votre fonction ne rempli pas tout à fait le même rôle mais je profite de votre source pour poser la question sur le sujet.

N'étant pas un expert dans les expressions régulières, je fais appel à votre expérience.

Merci

denis
Messages postés
31
Date d'inscription
jeudi 12 juin 2003
Statut
Membre
Dernière intervention
13 avril 2008

La version .Net :

'Nettoyage d'une chaine de caractères
Function CleanInput(ByVal strTxt As String) As String
Dim pattern As String = "^</*([^<>\s]*)(\s[^<>]*)?>|<([^<>\s]*)(\s[^<>]*)?/*>"
Return Regex.Replace(strTxt, pattern, String.Empty)
End Function

En revanche les () posent problème, quelqu'un aurait il une solution pour inclure les() comme caractères à épurer avec Regex.Replace ?

Actuellement j'utilise cette fonction pour pallier au problème mais j'aimerais bien utiliser la class d'expressions régulières prévu à cet effet par .net plutôt qu'une fonction maison et une boucle en plus !!

Function nochar(ByVal strTxt As String) As String

Dim ListDelChar As String = " ²&~#'{([-|`\^@)]°+=}<>,?;/:!§%*µ$£€"
Dim DelChar As String
Dim i As Integer

For i = 1 To Len(ListDelChar)
DelChar = ListDelChar.Chars(i - 1)
strTxt = Replace(strTxt, DelChar, String.Empty)
Next

nochar = strTxt
Return nochar

End Function

Merci de votre aide

denis

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.