Expressions régulières

HTML5, CSS3, Javascript, support des mobiles... Que penser de votre site ? Vous manquez d'informations pour la construction d'un site qui puisse s'afficher correctement partout ? C'est un problème simple, un peu complexe ? Venez ici !
Répondre
guilhem_mdg
Lézard à collerette
Messages : 438
Inscription : 18 juin 2004, 09:13

Expressions régulières

Message par guilhem_mdg »

Bonjour,

Je souhaite remplacer tous les espaces avant les ":" par des espaces insécables. Ex. :

Code : Tout sélectionner

"toto :" devient "toto :"
Mais pas si "::" :

Code : Tout sélectionner

"toto ::" reste "toto ::"
Comment faire en PHP avec les expressions régulières ?
Genre : $chaine=preg_replace('` :[^:]`'," ",$chaine);

Merci de votre aide !

Guilhem.

Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.1.4) Gecko/20070515 Firefox/2.0.0.4
Cordialement.
Guilhem.
calimo
Animal mythique
Messages : 14118
Inscription : 26 déc. 2003, 11:51

Re: Expressions régulières

Message par calimo »

guilhem_mdg a écrit :Genre : $chaine=preg_replace('` :[^:]`'," ",$chaine);
En quoi ça ne va pas ? L'expression me semble correcte...

Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.1.4) Gecko/20070515 Firefox/2.0.0.4
Asumbaa
Tyrannosaurus Rex
Messages : 2411
Inscription : 08 déc. 2004, 20:07

Re: Expressions régulières

Message par Asumbaa »

Salut,
calimo a écrit :
guilhem_mdg a écrit :Genre : $chaine=preg_replace('` :[^:]`'," ",$chaine);
En quoi ça ne va pas ? L'expression me semble correcte...
A première vue, il manque au moins un : dans l'expression de remplacement :

Code : Tout sélectionner

$chaine=preg_replace('` :[^:]`'," :",$chaine);
guilhem_mdg
Lézard à collerette
Messages : 438
Inscription : 18 juin 2004, 09:13

Message par guilhem_mdg »

Oui c vrai il manque un : dans l'expression mais c surtout qu'il ne me fait pas le remplacement si il n'y a rien après le :
par ocntre il me le fait bien si par ex. :k

Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.1.4) Gecko/20070515 Firefox/2.0.0.4
Cordialement.
Guilhem.
calimo
Animal mythique
Messages : 14118
Inscription : 26 déc. 2003, 11:51

Message par calimo »

guilhem_mdg a écrit :Oui c vrai il manque un : dans l'expression mais c surtout qu'il ne me fait pas le remplacement si il n'y a rien après le :
par ocntre il me le fait bien si par ex. :k
Ah, ben quand tu dirras tout :lol:

Ceci fonctionne en perl :

Code : Tout sélectionner

$chaine =~ s/ :([^:]|$)/ :\1/g;
$ indique la fin de la chaine ("si il n'y a rien après " :"). Puis grâce à la parenthèse, on capture le caractère "non :" et on le remets.

Ce qui, en php, pourrait donner

Code : Tout sélectionner

$chaine=preg_replace('` :([^:]|$)`'," :$1",$chaine);
(non vérifié).

Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.1.4) Gecko/20070515 Firefox/2.0.0.4
guilhem_mdg
Lézard à collerette
Messages : 438
Inscription : 18 juin 2004, 09:13

[Résolu] Expressions régulières

Message par guilhem_mdg »

Nickel Calimo merci ! :D

Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.1.4) Gecko/20070515 Firefox/2.0.0.4
Cordialement.
Guilhem.
HP
Tyrannosaurus Rex
Messages : 2196
Inscription : 21 oct. 2004, 10:25

Message par HP »

calimo a écrit :Ceci fonctionne en perl :

Code : Tout sélectionner

$chaine =~ s/ :([^:]|$)/ :\1/g;
$ indique la fin de la chaine ("si il n'y a rien après " :"). Puis grâce à la parenthèse, on capture le caractère "non :" et on le remets.
ah ouais, ça me fait penser à un truc, sous UNIX le Terminal peut exécuter du Perl ?
je sais qu'on peut faire du Python, mais perl ça semble sympa aussi :)

“La médiocrité obtiendra immanquablement la préséance en se travestissant des oripeaux de la bienséance.”
calimo
Animal mythique
Messages : 14118
Inscription : 26 déc. 2003, 11:51

Message par calimo »

HP a écrit :
calimo a écrit :Ceci fonctionne en perl :

Code : Tout sélectionner

$chaine =~ s/ :([^:]|$)/ :\1/g;
$ indique la fin de la chaine ("si il n'y a rien après " :"). Puis grâce à la parenthèse, on capture le caractère "non :" et on le remets.
ah ouais, ça me fait penser à un truc, sous UNIX le Terminal peut exécuter du Perl ?
Je ne comprend pas trop la question...
Un terminal peut exécuter n'importe quel interpréteur de ligne de commande. Bien sur par défaut c'est bash, mais tu peux y mettre ce que tu veux, y-compris du perl (c'est ce qui se passe lorsque tu tapes juste "perl" (sans les guillemets) dans ton shell... mais tu peux aussi faire du php si tu veux :) (jamais essayé le python, donc je peux pas comparer malheureusement...)


Juste pour préciser encore, je ne suis pas sûr que la ligne php remplace toutes les occurences (g, global) ou seulement la première... le manuel php n'est pas très clair à ce sujet (pas qu'à celui-ci d'ailleurs :lol: )

Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.1.4) Gecko/20070515 Firefox/2.0.0.4
HP
Tyrannosaurus Rex
Messages : 2196
Inscription : 21 oct. 2004, 10:25

Message par HP »

par simple curiosité j'ai essayé çà :

Code : Tout sélectionner

$ perl -e 'my (undef, undef, undef, $d, $m, $y) = localtime;  my $date = sprintf("%4d-%02d-%02d", $y+1900, $m+1, $d); print $date'
ça semble ok : 2007-06-14

bon bé cool !
je vais essayer php en y étant :)

“La médiocrité obtiendra immanquablement la préséance en se travestissant des oripeaux de la bienséance.”
HP
Tyrannosaurus Rex
Messages : 2196
Inscription : 21 oct. 2004, 10:25

Message par HP »

et un bête :

Code : Tout sélectionner

$ php -help

Code : Tout sélectionner

Usage: php [options] [-f] <file> [args...]
       php [options] -r <code> [args...]
       php [options] [-- args...]
  -a               Run interactively
  -c <path>|<file> Look for php.ini file in this directory
  -n               No php.ini file will be used
  -d foo[=bar]     Define INI entry foo with value 'bar'
  -e               Generate extended information for debugger/profiler
  -f <file>        Parse <file>.
  -h               This help
  -i               PHP information
  -l               Syntax check only (lint)
  -m               Show compiled in modules
  -r <code>        Run PHP <code> without using script tags <?..?>
  -s               Display colour syntax highlighted source.
  -v               Version number
  -w               Display source with stripped comments and whitespace.
  -z <file>        Load Zend extension <file>.
j'aurais pu y penser tout de suite… à force… :roll:

cool de pouvoir faire des vérifications de syntaxe sur un fichier par une simple ligne de commande !

“La médiocrité obtiendra immanquablement la préséance en se travestissant des oripeaux de la bienséance.”
Répondre

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 3 invités