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 21/11/2011, 18h55   #1
Débutant
 
Inscription : mai 2005
Messages : 1 957
Détails du profil
Informations personnelles :
Localisation : Suisse

Informations forums :
Inscription : mai 2005
Messages : 1 957
Points : 615
Points : 615
Par défaut Comment séparer un chaine de caractère qui change

Bonjour à tous,

Je ne suis pas un grnad connaisseur des expresions régulières et je pense que je dois passer par la pour résoudre mon problème

j'ai une chaine de caractère qui commence toujours par page_xx ou page_x

le x correspong à l'id de mes pages, pouvant aller de 1 (pas 01) à 100 (voir plus)

J'ai besoin de mettre dans un tableau tous ce qui se trouve avant et après le "-"
Code PHP :
1
2
3
4
page_xx-DCS00009.jpg
array=new(
'1' => 'page_xx,
'2' => 'DCS00009.jpg)

Comment puis faire une expression régulière qui ca détecter le
page_x, ou page_xx ou page_xxx

Je vous remercie pour votre aide, car là, je nage.

Bonne soirée
__________________
Il ne suffit pas de tout savoir. Vouloir et persévérer, c'est déjà presque tout!
pierrot10 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/11/2011, 19h05   #2
Modérateur
 
Inscription : septembre 2010
Messages : 7 141
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 141
Points : 8 507
Points : 8 507
pas besoin de regex fait un explode ou un sscanf
__________________
http://blog.stealth35.com/
stealth35 est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/11/2011, 19h22   #3
Débutant
 
Inscription : mai 2005
Messages : 1 957
Détails du profil
Informations personnelles :
Localisation : Suisse

Informations forums :
Inscription : mai 2005
Messages : 1 957
Points : 615
Points : 615
Ben j'ai pemsé au explode,
mais je base sur quoi.
Si je me base sur "page", il va me séparer le chiffre (les x) alors qui doivent rester avec page.
(En fait je fait ceci car je doit renommer la deuxième partie alors que "page_" et les xxx doivent resté "indem".

Donc si je fais une explode sur "page" les xxx vont etre séparés et je ne peut pas faire un explode sur les xxx, car il change.

Aussi j'ai oublié de préciser un truc, pour compliquer.

Mon image va devoir s'appeler (un peu plus tard, donc à pérvoir)

page_xxx_y_DCS0009-jpd.

les "x" pour l'id de la page (qui ne devrait pas dépasser 2 caractère)
le "y" pour le nombre d'image correspondant à xxx.

Et évidement DCS0009.jpg doit être séparéde ce qui lui précède car il va etre rennomé en ...large.jpg et ...small.jpg

Je ne connais pas sscanf(), mais je vais voir de suite

Merci
__________________
Il ne suffit pas de tout savoir. Vouloir et persévérer, c'est déjà presque tout!
pierrot10 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/11/2011, 19h25   #4
Débutant
 
Inscription : mai 2005
Messages : 1 957
Détails du profil
Informations personnelles :
Localisation : Suisse

Informations forums :
Inscription : mai 2005
Messages : 1 957
Points : 615
Points : 615
ha peut etre que ca peut faire l'affaire?

Code :
list($serial) = sscanf("page_23_5-DCS009.jpg", "page_%d_%d-");
__________________
Il ne suffit pas de tout savoir. Vouloir et persévérer, c'est déjà presque tout!
pierrot10 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/11/2011, 19h37   #5
Débutant
 
Inscription : mai 2005
Messages : 1 957
Détails du profil
Informations personnelles :
Localisation : Suisse

Informations forums :
Inscription : mai 2005
Messages : 1 957
Points : 615
Points : 615
C'est bien j'arrive faire ca
Citation:
Array ( [0] => 23 [1] => 5 [2] => DCS009.jpg [3] => )
avec ca
Code PHP :
1
2
 
print_r(sscanf("page_23_5-DCS009.jpg", "page_%d_%d-%s.%s"));

Mais je n'arrive pas à faire ca
Citation:
Array ( [0] => 23 [1] => 5 [2] => DCS009 [3] =>.jpg )
Pourtant %s c'est pour une chaine de caractère (.%s)?
__________________
Il ne suffit pas de tout savoir. Vouloir et persévérer, c'est déjà presque tout!
pierrot10 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/11/2011, 09h32   #6
Modérateur
 
Inscription : septembre 2010
Messages : 7 141
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 141
Points : 8 507
Points : 8 507
comme ça

Code :
print_r(sscanf("page_23_5-DCS009.jpg", "page_%d_%d-%[^.].%s"));
__________________
http://blog.stealth35.com/
stealth35 est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 11h01.


 
 
 
 
Partenaires

Hébergement Web