Regex tout ce qui se trouve entre les balises... [Résolu]

medicair
Messages postés
37
Date d'inscription
vendredi 28 mars 2003
Dernière intervention
25 juin 2010
- 30 nov. 2006 à 13:26 - Dernière réponse : medicair
Messages postés
37
Date d'inscription
vendredi 28 mars 2003
Dernière intervention
25 juin 2010
- 30 nov. 2006 à 18:41
Bonjour, le regex suivant me retourne vrai pour toutes les balises script y compris leurs contenu d'une page .

<script[^>]*>(.|\n)*?</script[^>]*>(\r\n)?

Je souhaite en réalité qu'il me retourne vrai pour exactement l'inverse c'est a dire tout ce qui n'est pas entre les balises script.

Pourriez-vous m'aider ?

D'avance merci
SDA
Afficher la suite 

Votre réponse

8 réponses

Meilleure réponse
sebmafate
Messages postés
4947
Date d'inscription
lundi 17 février 2003
Dernière intervention
14 février 2014
- 30 nov. 2006 à 14:14
3
Merci
ok... dans ce cas, le mieux est d'utiliser un replace avec la regex précédente...

string outputString = Regex.Replace(inputString, @"<script[^>]*>(.|\n)*?</script[^>]*>(\r\n)?", string.Empty);

Sébastien FERRAND (
blog)
Consultant Indépendant
[Microsoft MVP Visual C#]

Merci sebmafate 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 86 internautes ce mois-ci

Commenter la réponse de sebmafate
Meilleure réponse
sebmafate
Messages postés
4947
Date d'inscription
lundi 17 février 2003
Dernière intervention
14 février 2014
- 30 nov. 2006 à 14:57
3
Merci
Utilise toujours ta regex comme ceci :

MatchCollection matches = Regex.Matches( inputString, @"<script[^>]*>(.|\n)*?</script[^>]*>(\r\n)?");

Maintenant la collection matches contient l'ensemble des résultats trouvés.

Sébastien FERRAND (
blog)
Consultant Indépendant
[Microsoft MVP Visual C#]

Merci sebmafate 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 86 internautes ce mois-ci

Commenter la réponse de sebmafate
Meilleure réponse
medicair
Messages postés
37
Date d'inscription
vendredi 28 mars 2003
Dernière intervention
25 juin 2010
- 30 nov. 2006 à 18:41
3
Merci
en fait je ne fait pas du tout de CSharp, et je te remercie bien de m'avoir éclairé, j'ai tout de meme pu adapter pour VB, voici ma fonction qui sait peut être utile pour d'autres.

Function Recupsript(html,conf)
' si conf = 1, temp recupère toutes les balises script sinon récupère le reste
   Dim Regex
   Dim Matche
   Dim Matches
   Dim RetStr


   Set Regex = New RegExp


   Regex.Pattern = "<script[^>]*>(.|\n)*?</script[^>]*>(\r\n)?"
   Regex.IgnoreCase = True
   Regex.Global = True


  If (Regex.Test(html) = True) Then
          If conf="1" then
              Set Matches = Regex.Execute(html)
               For Each Matche In Matches
                 temp = temp & Matche.Value
               Next
 Else
    temp = Regex.Replace(html,"")
 End if


   Else
    temp = ""
   End If
   Recupsript = temp
End Function

A bientôt !


SDA

Merci medicair 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 86 internautes ce mois-ci

Commenter la réponse de medicair
sebmafate
Messages postés
4947
Date d'inscription
lundi 17 février 2003
Dernière intervention
14 février 2014
- 30 nov. 2006 à 13:56
0
Merci
J'ai pas bien compris...

tu veux tester qu'une chaine n'est pas compris entre les balises script ?

Sébastien FERRAND (
blog)
Consultant Indépendant
[Microsoft MVP Visual C#]
Commenter la réponse de sebmafate
medicair
Messages postés
37
Date d'inscription
vendredi 28 mars 2003
Dernière intervention
25 juin 2010
- 30 nov. 2006 à 14:08
0
Merci
Je souhaite récupérer tout ce qui ne se situe pas dans les balises scripts sachant qu'il y en a plusieurs dans la page ex :

récupe la balise div + son contenu

<script>vire la balise script+ son contenu</script>
récupe la balise im + son contenu
<script>vire la balise script+ son contenu</script>
récupe la balise table + son contenu

en somme le regex que je cherche devrait récupérer

récupe la balise div + son contenu

récupe la balise im + son contenu
récupe la balise table + son contenu

encore merci

SDA
Commenter la réponse de medicair
medicair
Messages postés
37
Date d'inscription
vendredi 28 mars 2003
Dernière intervention
25 juin 2010
- 30 nov. 2006 à 14:50
0
Merci
Ha, effectivement c'est parfait ! merci, et comment récupérer uniquement les balises script et leur contenu ?

merci Seb

SDA
Commenter la réponse de medicair
medicair
Messages postés
37
Date d'inscription
vendredi 28 mars 2003
Dernière intervention
25 juin 2010
- 30 nov. 2006 à 15:13
0
Merci
Merci à toi !

SDA
Commenter la réponse de medicair
sebmafate
Messages postés
4947
Date d'inscription
lundi 17 février 2003
Dernière intervention
14 février 2014
- 30 nov. 2006 à 15:22
0
Merci
De rien... j'adore les regexes :)

Sébastien FERRAND (
blog)
Consultant Indépendant
[Microsoft MVP Visual C#]
Commenter la réponse de sebmafate

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.