|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre confirmé
![]() ![]() Inscription : décembre 2006 Messages : 307 ![]() |
Bonjour,
Je suppose que cela est simple, mais je n'y arrive pas Je veux faire une expression régulière afin de supprimer tous les premiers zéros d'une chaine. Ex : 00584 -> 584 025108 -> 25108 000001 -> 1 J'ai essayé ceci : $id_com = preg_replace('^0*[0-9]$', '', $id_com); Ce qui ne fonctionne pas (No ending delimiter '^' found) Alors si vous avez une solution, je suis preneur. Merci de vos lumières. |
|
00
|
|
|
#2 |
|
Membre chevronné
![]() Inscription : janvier 2006 Messages : 918 ![]() |
Bonjour
Si ta chaîne est toujours en réalité un nombre, tu peux essayer de faire $foo = $foo + 0; (transtypage implicite) ou encore $foo = (int)$foo; transtypage forcé. |
|
|
00
|
|
|
#3 | |
|
En attente de confirmation mail
![]() Inscription : juin 2002 Messages : 6 164 ![]() |
Il est clair qu'une expression régulière n'est pas nécessaire pour réaliser cette opération d'autant plus que ça devrait rester une chaîne à l'issue du remplacement.
Citation:
Il aurait fallu utiliser un caractère séparateur afin de marquer le début ainsi que la fin du motif. Celui-ci peut être, pour ainsi dire, quelconque (métacaractère à exclure de préférence) et est requis car vous n'êtes pas sans savoir que l'on peut faire figurer des options globales à la fin de l'expression (i : insensible à la casse, s : pour que le métacaractère . inclut les retours à la ligne, etc). Une correction aurait été :Code :
$id_com = preg_replace('~^0*~', '', $id_com);
A lire et à conserver dans ses favoris : Initiation aux expressions régulières en PHP |
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com