Discussion:
regex pour récuperer tous les codes couleur d'une feuille de style
(trop ancien pour répondre)
EBille
2012-06-23 06:32:47 UTC
Permalink
Bonjour,
je veux réaliser un script pour extraire l'ensemble des codes
"couleurs" d'une feuille de style.
Je suis un gros débutant en regex... l'expression a été construite
autour de cette idée (pour l'instant, j'abandonne les "symboliques"
white etc...) : la chaine commence par #, se termine par ; et contient
six caractères dans la série a à z et 1 à 9 et ça donne ça (ne riez
pas) :
#^\#([0-9a-z]{2}){3}$;#i
mais ça ne fonctionne pas. Sans me donner la solution directement, est-
ce que quelqu'un peut me donner une piste ?
Cordialement,
Eb
Clément
2012-06-23 11:10:09 UTC
Permalink
Bonjour,

Votre regex cherche si la chaîne de caractère commence par "#" et
comporte 6 caractères jusqu'à la fin.
Autant dire que si vous donnez votre css entière, ça ne passe pas (elle
n'a pas que 7 caractères non ? :))

Je ne donne pas la solution directement donc mais il faudrait une regex
qui signifierait "trouve moi toutes les parties qui contiennent "#" puis
des caractères numériques ou entre a et f (de g à z n'existe pas en
css). Les caractères sont entre 3 et 6 (vu qu'on peut écrire #fff ou
#ffffff pour avoir du blanc)"

Le i final peut être omis si vous mettez a-f et A-F (à ce moment
minuscule et majuscule seront déjà incluses) par contre, un m final
(pour multiligne peut être intéressant car votre css est certainement
sur plusieurs lignes ;))
Post by EBille
Bonjour,
je veux réaliser un script pour extraire l'ensemble des codes
"couleurs" d'une feuille de style.
Je suis un gros débutant en regex... l'expression a été construite
autour de cette idée (pour l'instant, j'abandonne les "symboliques"
white etc...) : la chaine commence par #, se termine par ; et contient
six caractères dans la série a à z et 1 à 9 et ça donne ça (ne riez
#^\#([0-9a-z]{2}){3}$;#i
mais ça ne fonctionne pas. Sans me donner la solution directement, est-
ce que quelqu'un peut me donner une piste ?
Cordialement,
Eb
Bille
2012-06-24 06:34:32 UTC
Permalink
Bonjour,
Merci pour votre réponse !
Post by Clément
Votre regex cherche si la chaîne de caractère commence par "#" et
comporte 6 caractères jusqu'à la fin.
Autant dire que si vous donnez votre css entière, ça ne passe pas (elle
n'a pas que 7 caractères non ? :))
C'est juste ! mais le script analysera la css ligne par ligne.
Post by Clément
Je ne donne pas la solution directement donc mais il faudrait une regex
qui signifierait "trouve moi toutes les parties qui contiennent "#" puis
des caractères numériques ou entre a et f (de g à z n'existe pas en
css). Les caractères sont entre 3 et 6 (vu qu'on peut écrire #fff ou
#ffffff pour avoir du blanc)"
ca, je ne l'avais pas vu venir ! Mais je peux restructurer les
déclarations dans la css
Post by Clément
Le i final peut être omis si vous mettez a-f et A-F (à ce moment
minuscule et majuscule seront déjà incluses) par contre, un m final
(pour multiligne peut être intéressant car votre css est certainement
sur plusieurs lignes ;))
Je ne trouve pas la solution, mais déjà mon script ne trouve pas #^\#
$;# dans la chaine
background-color: #220099; font-size: small;
on verra ça en juillet à mon retour de vacances...
Merci encore
Eric
Clément
2012-06-24 17:36:30 UTC
Permalink
Post by Bille
C'est juste ! mais le script analysera la css ligne par ligne.
Même ligne par ligne... ça ne commencera jamais par #xxxxxx mais genre
background-color ;)
Post by Bille
ca, je ne l'avais pas vu venir ! Mais je peux restructurer les
déclarations dans la css
Si c'est une CSS à vous, oui. Mais prendre tous les cas en compte est
tout de même plus sûr.
Post by Bille
Je ne trouve pas la solution, mais déjà mon script ne trouve pas #^\#
$;# dans la chaine
background-color: #220099; font-size: small;
Normal, "^" signifie commence par, votre chaîne commence par
"background" pas "#".
De plus, à vérifier, mais je ne crois pas que le dièse soit à échapper.
Post by Bille
on verra ça en juillet à mon retour de vacances...
Bonne vacance :)
Olivier Miakinen
2012-06-24 22:56:47 UTC
Permalink
Ce message pourrait être inapproprié. Cliquez pour l'afficher.
Loading...