Expression réguliére [Résolu]

karimfellah 30 Messages postés jeudi 24 septembre 2009Date d'inscription 15 janvier 2010 Dernière intervention - 24 oct. 2009 à 11:12 - Dernière réponse : Renfield 17308 Messages postés mercredi 2 janvier 2002Date d'inscription 22 août 2018 Dernière intervention
- 29 oct. 2009 à 11:03
Bonjour à tous et à toutes.
SVP, je cherche un regex qui permet de detecter le contenu entre les balises <style>-----------------------</style> dans un fichier html.
Vraiment je ne peut pas avancé, j'ai deja poser la question voici cette rejex $pattern"/\<style(?:[^\>*)\>(.*?)\<\/style\>/";
> ca marche pas ...?
Veuillez m'aider
Merci
Afficher la suite 

Votre réponse

5 réponses

Meilleure réponse
Renfield 17308 Messages postés mercredi 2 janvier 2002Date d'inscription 22 août 2018 Dernière intervention - 29 oct. 2009 à 11:03
3
Merci
\bstyle *= *".*?"

\b => début de mot
style * 'style' suivi de 0 à n espaces
* '' suivi de 0 à n espaces
".*?" .*? tout caractère (de 0 à n)

le '*?' est une construction spéciale demandant au motif de ne pas être gourmand et de prendre le moins de caractère possible. En gros, ca s'arretera au premier " rencontré

Renfield - Admin CodeS-SourceS - MVP Visual Basic

Merci Renfield 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 93 internautes ce mois-ci

Commenter la réponse de Renfield
Renfield 17308 Messages postés mercredi 2 janvier 2002Date d'inscription 22 août 2018 Dernière intervention - 27 oct. 2009 à 09:53
0
Merci
<style>[\s\S]+</style>

tout simplement ^^


et pour l'attribut style:

\bstyle *= *".*?"




Renfield - Admin CodeS-SourceS - MVP Visual Basic
Commenter la réponse de Renfield
karimfellah 30 Messages postés jeudi 24 septembre 2009Date d'inscription 15 janvier 2010 Dernière intervention - 29 oct. 2009 à 10:19
0
Merci
ca se voit que c'est simple mais malheuresement ca marche pas
T'inquiéte j'ai aboutit à la bonne solution:
$pattern="/<style[^>]*>(.*)<\/style>/Ui";
Commenter la réponse de karimfellah
Renfield 17308 Messages postés mercredi 2 janvier 2002Date d'inscription 22 août 2018 Dernière intervention - 29 oct. 2009 à 10:28
0
Merci
testé avec le code source de la présente page :

<head.*?>[\s\S]+</head> nickel


le '.' tel que tu le définis dans ta regexp désigne normallement tout caractère sauf les sauts de lignes.
Du coup, je sais pas trop comment cela fonctionne (peut etre lié à ton /U)

\s => tout caractère espace ou saut de ligne
\S => tous les autres

du coup, on avance nickel jusqu'a la balise fermante.



Renfield - Admin CodeS-SourceS - MVP Visual Basic
Commenter la réponse de Renfield
karimfellah 30 Messages postés jeudi 24 septembre 2009Date d'inscription 15 janvier 2010 Dernière intervention - 29 oct. 2009 à 10:42
0
Merci
Merci bien Renfield,
Vraiment ca m'a apporter de bien votre réponse.
je suis un débutant precés et les regex m'embéte je réalise mon P.F.E et il ne me reste pas beacoup du temps
j'ai atendu presque 2 jours pour avoir cette solution.

A propos de l'attribut style c pas trop clair si ca te dérange pas merci de me réexpliquer comment ca marche le regex
que tu m'a proposé

Merci infiniment.
Commenter la réponse de karimfellah

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.