Help please: détecttion de style

Résolu
UZUL33 Messages postés 14 Date d'inscription jeudi 17 juin 2004 Statut Membre Dernière intervention 16 septembre 2010 - 5 mai 2010 à 15:43
UZUL33 Messages postés 14 Date d'inscription jeudi 17 juin 2004 Statut Membre Dernière intervention 16 septembre 2010 - 6 mai 2010 à 16:38
Bonjour,

Voila mon soucis je dois créer un regex dans un script Php qui va chercher et remplacer dans une chaine de caractère certain des attributs font affectés à un élément de la chaine.

ex : Environnement CALME

donnerait =>
Environnement CALME

j'ai commencé par :
$regdeb='/^font-[family|size|size-adjust|stretch|variant](.+)\:(.+)[a-zA-Z0-9._-](.+)+;$/';

Mais mon $TxtOut = (preg_replace ($regdeb,'\\1', $tmp0)); ne me donne rien ...

Pourriez vous me conseiller svp ?

savoir, c'est vivre...
et maintenir dans l'ignorance c'est presque un homicide

8 réponses

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
6 mai 2010 à 15:40
ok pour les guillemets et le ; manquant, eventuellement.

\bfont-\w+:[^"]+?;

testé et fonctionne... et pas uniquement dans les balises font.

detecte TOUS les attributs font-

si tu veux les cibler, faire :

\bfont-(?:family|size|size\-adjust|stretch|variant):[^"]+?;


Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
6 mai 2010 à 14:40
possible de faire :

\bfont-\w+:.+?;


Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
UZUL33 Messages postés 14 Date d'inscription jeudi 17 juin 2004 Statut Membre Dernière intervention 16 septembre 2010
6 mai 2010 à 14:55
Bonjour renfield et merci pour ta réponse.

J'ai testé et : cela ne touche que et uniquement que les balise font, je cherche à pouvoir modifier certains des attributs liés au 'font' pas seulement aux balises
ex :

donc bien certains des attributs 'family|size|size-adjust|stretch|variant'
là dans ce cas 'font-style:italic' resterait seul dans la balise

de plus si les attributs recherchés se trouvent en fin de balise (ex : '<span style="font-family: verdana; font-size:19px"') il se peut que le ';' soit absent aussi devrai-je rechercher les attributs avec " comme dernier caractère et non plus ;


Tu comprends pourquoi je me prends la tête ? .

savoir, c'est vivre...
et maintenir dans l'ignorance c'est presque un homicide
UZUL33 Messages postés 14 Date d'inscription jeudi 17 juin 2004 Statut Membre Dernière intervention 16 septembre 2010
6 mai 2010 à 15:00
J'ai même testé ça et marche pas non plus :
$regdeb='/((^[font\-])+([family|size|size\-adjust|stretch|variant])+([\:| \:|\: ])+([a-zA-Z0-9 ._-])+(\;))$/';
<= y'plait bien celui là !


savoir, c'est vivre...
et maintenir dans l'ignorance c'est presque un homicide

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
UZUL33 Messages postés 14 Date d'inscription jeudi 17 juin 2004 Statut Membre Dernière intervention 16 septembre 2010
6 mai 2010 à 15:38
idem pour :

$regdeb='/^[font\-]+(([family|size|size\-adjust|stretch|variant])([:| :|: ])([a-zA-Z0-9 ,\.\_\-]))+\;$/';

là ! je me pose de sérieuses questions un neurone à lâché ? ?????

savoir, c'est vivre...
et maintenir dans l'ignorance c'est presque un homicide
UZUL33 Messages postés 14 Date d'inscription jeudi 17 juin 2004 Statut Membre Dernière intervention 16 septembre 2010
6 mai 2010 à 16:17
boulatator te remercie !

peux-tu m'expliquer :
1 - '(?:family ' => car là, je pense pas l'avoir vu quelque part il me semblait que [ | | ] s'occupait déjà de dire soit, soit , soit.
2 - ':[^"]+?; ' => là par contre j'ai du mal à déchiffrer.

En tous cas merci à toi
je crois qu'on a le luxe de pouvoir "savoir" tout en continuant "d'apprendre en permanence"

savoir, c'est vivre...
et maintenir dans l'ignorance c'est presque un homicide
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
6 mai 2010 à 16:24
[abc]
a ou b ou c

les | servent pas ici

mais pour des mots, on encadre pas avec des crochets

je borne avec des parentheses

?:

sert a dire de ne pas extraire ce groupe.

[^"]

tout caractère, sauf une guillement

+?

repeter (non grourmand) jusqu'au premier ; rencontré


Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
UZUL33 Messages postés 14 Date d'inscription jeudi 17 juin 2004 Statut Membre Dernière intervention 16 septembre 2010
6 mai 2010 à 16:38
grand merci et comme le savoir c'est la partage, je viens d'en faire profiter un de mes potes qui galérait également sur une syntaxe similaire.

j'ai bon espoir de pouvoir un jour te renvoyer l'ascenseur.
merci encore

savoir, c'est vivre...
et maintenir dans l'ignorance c'est presque un homicide
Rejoignez-nous