Précédent   Forum des professionnels en informatique > PHP > Langage > Regex
Regex Forum d'entraide sur les expressions rationnelles PHP. Avant de poster -> FAQ regex, Cours de regex et Sources de regex
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 12/04/2006, 13h32   #1
Membre Expert
 
Avatar de Anduriel
 
Homme
Étudiant
Inscription : février 2004
Messages : 2 168
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : février 2004
Messages : 2 168
Points : 1 277
Points : 1 277
Par défaut remplacer les class

Salut,
Oui je suis à fond dessus en ce moment...
Voila je souhaite remplacer les classes Css par autre chose.
Par exemple remplace .ma_class { par .ca_marche {

Voila ce que j'ai fais:
Code :
$style_content = preg_replace("`.(.+)[[:space:]]*{`", "<font style='color:green'>$1</font>", $style_content);
Tout:
- tout ce qui commence par un point
- ce qu'on veut ensuite
- un nombre d'epsaces indeterminé
- et l'accolade pour la fin.

Mais ce code ne fonctionne pas du tout (rien n'est fait)
Comment faire?
Merci
Anduriel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/04/2006, 13h39   #2
Expert Confirmé
 
Avatar de Maxoo
 
Maxime Pasquier
Expert PHP
Inscription : novembre 2004
Messages : 2 126
Détails du profil
Informations personnelles :
Nom : Maxime Pasquier
Âge : 28
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Expert PHP
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : novembre 2004
Messages : 2 126
Points : 2 602
Points : 2 602
Code :
preg_replace("/\.(.+)[[:space:]]*\{/", "<font style='color:green'>$1</font>", $style_content);
pense bien que . et { sont des trucs utilisés et donc qu'il faut les échapper avec \ oki ??

essaie ca ...
__________________
Pour une bien meilleur lisibilité, utilisez la balise [code], c'est le [#] dans votre éditeur.
Mon espace Développez : mes Créations.


Rencontre & Carte des Membres de Developpez.com, version 3.0
Maxoo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/04/2006, 13h43   #3
Membre Expert
 
Avatar de Anduriel
 
Homme
Étudiant
Inscription : février 2004
Messages : 2 168
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : février 2004
Messages : 2 168
Points : 1 277
Points : 1 277
Merci mais il ne fonctionne pas non plus, il ne fait rien.
Anduriel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/04/2006, 13h50   #4
Expert Confirmé
 
Avatar de Maxoo
 
Maxime Pasquier
Expert PHP
Inscription : novembre 2004
Messages : 2 126
Détails du profil
Informations personnelles :
Nom : Maxime Pasquier
Âge : 28
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Expert PHP
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : novembre 2004
Messages : 2 126
Points : 2 602
Points : 2 602
Code :
preg_replace("/\.(.*)\{/", "<font style='color:green'>$1</font>", $style_content);
et ca ??

et c'est pour quoi que tu mets du font :
__________________
Pour une bien meilleur lisibilité, utilisez la balise [code], c'est le [#] dans votre éditeur.
Mon espace Développez : mes Créations.


Rencontre & Carte des Membres de Developpez.com, version 3.0
Maxoo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/04/2006, 14h00   #5
Membre Expert
 
Avatar de Anduriel
 
Homme
Étudiant
Inscription : février 2004
Messages : 2 168
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : février 2004
Messages : 2 168
Points : 1 277
Points : 1 277
Les deux résultats donnent en fait le résultat équivalent mais ne font rien Je crois que ça vient des caractères de fin et de début, ici / ?
C'est pourquoi que je mets quoi?
Anduriel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/04/2006, 22h17   #6
Expert Confirmé
 
Avatar de Maxoo
 
Maxime Pasquier
Expert PHP
Inscription : novembre 2004
Messages : 2 126
Détails du profil
Informations personnelles :
Nom : Maxime Pasquier
Âge : 28
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Expert PHP
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : novembre 2004
Messages : 2 126
Points : 2 602
Points : 2 602
j'ai pas compris ce que tu veux faire en définitive.

donne nous ton code que tu veux changer et en quoi tu veux le changer.
__________________
Pour une bien meilleur lisibilité, utilisez la balise [code], c'est le [#] dans votre éditeur.
Mon espace Développez : mes Créations.


Rencontre & Carte des Membres de Developpez.com, version 3.0
Maxoo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/04/2006, 22h39   #7
Membre Expert
 
Avatar de Anduriel
 
Homme
Étudiant
Inscription : février 2004
Messages : 2 168
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : février 2004
Messages : 2 168
Points : 1 277
Points : 1 277
Par défaut Re: [REGEXP] remplacer les class

Citation:
Envoyé par Anduriel
Par exemple remplace .ma_class { par .ca_marche {
J'ai réussi après pleins d'essais:

Code :
preg_replace("#\.{1}(.+)([[:space:]]*\})#Us", "<font style='color:green'>$1</font>$2", $style_content);
De tête c'est à peu près ça
Merci de ton soutient
A+
Anduriel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/04/2006, 22h51   #8
Rédacteur
 
Avatar de Yogui
 
Homme Guillaume Rossolini
Directeur technique
Inscription : février 2004
Messages : 13 720
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Rossolini
Localisation : France

Informations professionnelles :
Activité : Directeur technique

Informations forums :
Inscription : février 2004
Messages : 13 720
Points : 17 355
Points : 17 355
Salut

Faites gaffe avec les guillemets, en particulier quand vous échappez des caractères d'une string...

@Anduriel : Je pense que tu peux virer le {1}
Code :
preg_replace('#\.(.+)([[:space:]]*{)#Us', "<font style='color:green'>$1</font>$2", $style_content);
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework
Yogui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/04/2006, 23h22   #9
Membre Expert
 
Avatar de Anduriel
 
Homme
Étudiant
Inscription : février 2004
Messages : 2 168
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : février 2004
Messages : 2 168
Points : 1 277
Points : 1 277
Ok, mais quelle est la différence entre les simpes guillemets et doubles? Je suppose que c'est comme avec les variables mais qu'est ce que ça change?
Anduriel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/04/2006, 01h34   #10
Expert Confirmé
 
Avatar de Maxoo
 
Maxime Pasquier
Expert PHP
Inscription : novembre 2004
Messages : 2 126
Détails du profil
Informations personnelles :
Nom : Maxime Pasquier
Âge : 28
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Expert PHP
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : novembre 2004
Messages : 2 126
Points : 2 602
Points : 2 602
Citation:
Envoyé par Yogui
Faites gaffe avec les guillemets, en particulier quand vous échappez des caractères d'une string...
oui j'ai pas bien pigé le message que tu voulais faire passer.

tu peux nous expliquer stp Yogui ??
__________________
Pour une bien meilleur lisibilité, utilisez la balise [code], c'est le [#] dans votre éditeur.
Mon espace Développez : mes Créations.


Rencontre & Carte des Membres de Developpez.com, version 3.0
Maxoo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/04/2006, 10h29   #11
Expert Confirmé Sénior
 
Avatar de Mr N.
 
Inscription : septembre 2004
Messages : 5 421
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 5 421
Points : 5 835
Points : 5 835
je comprends pas trop. Tu dis
Citation:
Par exemple remplace .ma_class { par .ca_marche {
Et dans ton code tu remplace par <font color:green>
Mr N. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/04/2006, 21h55   #12
Expert Confirmé
 
Avatar de Maxoo
 
Maxime Pasquier
Expert PHP
Inscription : novembre 2004
Messages : 2 126
Détails du profil
Informations personnelles :
Nom : Maxime Pasquier
Âge : 28
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Expert PHP
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : novembre 2004
Messages : 2 126
Points : 2 602
Points : 2 602
Citation:
Envoyé par Mr N.
je comprends pas trop. Tu dis
Citation:
Par exemple remplace .ma_class { par .ca_marche {
Et dans ton code tu remplace par <font color:green>
C'est exactement ce que je lui ai demandé, mais il m'avait pas compris.
__________________
Pour une bien meilleur lisibilité, utilisez la balise [code], c'est le [#] dans votre éditeur.
Mon espace Développez : mes Créations.


Rencontre & Carte des Membres de Developpez.com, version 3.0
Maxoo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/04/2006, 11h29   #13
Membre Expert
 
Avatar de Anduriel
 
Homme
Étudiant
Inscription : février 2004
Messages : 2 168
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : février 2004
Messages : 2 168
Points : 1 277
Points : 1 277
Ah désolé oui c'est bête mais en fait je voulais mettre .test { en vert C'était juste pour vous dire que je voulais récupérer test.
Anduriel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/04/2006, 11h48   #14
Expert Confirmé Sénior
 
Avatar de Mr N.
 
Inscription : septembre 2004
Messages : 5 421
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 5 421
Points : 5 835
Points : 5 835
Donc tu travaille bien dans un fichier css... je commençais à douter.

Il y a moultes endroits où une classe peux se trouver dans une feuille de styles :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
 
.<?php
header('Content-type: text/plain');
 
$css = <<<END
.ma_classe{
}
  .ma_classe {
}
.ma_classe:hover {
}
.ma_classe div span {
}
.ma_classe,
.mon_autre_classe {
}
...
...
END;
echo $css . "\n------------------------------------------------------\n";
$old = 'ma_classe';
$new = 'ca_marche';
echo preg_replace('`\.'. preg_quote($old) .'\b`i', '.'.$new, $css);
 
?>
Mr N. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/04/2006, 12h02   #15
Membre Expert
 
Avatar de Anduriel
 
Homme
Étudiant
Inscription : février 2004
Messages : 2 168
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : février 2004
Messages : 2 168
Points : 1 277
Points : 1 277
Oula merci mais je n'ai pas compris: tu cherches un point, fini par \b ?
Que signifie ce preg_quote?

Merci
Anduriel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/04/2006, 12h29   #16
Expert Confirmé Sénior
 
Avatar de Mr N.
 
Inscription : septembre 2004
Messages : 5 421
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 5 421
Points : 5 835
Points : 5 835
Je ne peux pas te dire mieux : http://php.net/preg_quote
Les regexp utilisent des caractèrent spéciaux, ils faux les échapper (. ==> \.)
C'est comme un addslashes ou mysql_real_escape_string, mais pour une expression régulière.

\.ma_class\b signifie un point suivi de la chaine de caractère "ma_classe" suivi d'un caractère séparateur de mot (espace, virgule, ...)
Mr N. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/04/2006, 13h43   #17
Membre Expert
 
Avatar de Anduriel
 
Homme
Étudiant
Inscription : février 2004
Messages : 2 168
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : février 2004
Messages : 2 168
Points : 1 277
Points : 1 277
Ah génial merci
J'avais demandé ça dans un autre topic qui a coulé dans le forum sans réponse: connais tu un site comprenant des tutoriels sur les caractères de fin de chaine ou particuliers, comme U, s, i, \b...?
Je connais expreg.com mais il ne parle pas de ça.

Merci
Anduriel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/04/2006, 14h03   #18
Expert Confirmé Sénior
 
Avatar de Mr N.
 
Inscription : septembre 2004
Messages : 5 421
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 5 421
Points : 5 835
Points : 5 835
si si expreg parle de ça => http://expreg.com/delimiteur.php

mes deux seuls sites de références :
  • http://php.net/pcre (reference.pcre.pattern.modifiers + reference.pcre.pattern.syntax)
  • http://expreg.com/
Mr N. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/04/2006, 17h22   #19
Membre Expert
 
Avatar de Anduriel
 
Homme
Étudiant
Inscription : février 2004
Messages : 2 168
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : février 2004
Messages : 2 168
Points : 1 277
Points : 1 277
Merci
Anduriel est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 19h13.


 
 
 
 
Partenaires

Hébergement Web