Bonjour à tous,
Petit questionnement, en fait j'ai besoin de récupérer une partie de nom de fichier, chose que j'ai fait à l'aide de la fonction substr($fichier, 14, 3), mais cette fonction ne me convient pas totalement, car le nombre de caractère que je souhaite récupérer peut varier...
Mes noms de fichiers peuvent - être :
F2014030756-CC020.pdf
F2014030756-CC123.pdf
F2014030756-CCD568.pdf

Ce que je souhaite récupérer est donc ce qui ses situe aprés CC et avant le point.

J'ai donc essayé avec les REGEX mais il y a encore ce qui me donne :

<?php
$fichier = 'F2014030756-CCD520.pdf';
preg_match('#[^CC]+\.[pdf$]#', $fichier, $result);
var_dump($result);
echo "Le nom de fichier est : $result[0]";

?>

Mais il y a encore un ".p", comprend po...

Merci de votre aide
Modifié par urlien (31 Oct 2014 - 18:06)
Modérateur
Salut,

Non, à priori la RegEx ne se justifie pas.

strpos() et strrpos() t'aideront.

Par contre, si le motif est dynamique, alors les preg_match family t'aideront.

En fait quand je lis ton code, tu restes étriquer. Tu n'utilises pas la technique de l'entonnoir. Chercher large et affiner par la suite.

Je t'invite à lire ce genre de motif :
#\w+\d+-\w{2,}(\d{3,})\.pdf#i


Sinon, à mon avis, il vaut mieux utiliser une regex. Tu seras plus dynamique.
Modifié par niuxe (31 Oct 2014 - 18:39)
Bonjour et merci pour ton retour.

Cependant j'ai quelques interrogations suite à ta lecture, en effet tu commences par dire que la Regex ne se justifie pas et tu finis par conseiller une Regex Smiley eek .

Sinon les fonctions strpos() et strrpos() permettent de définir les positions de "CC" et 3.pdf" mais je cherche à extraire ce qui se situ entre ces 2 positions.

En tout cas merci pour ces pistes
salut,
tu peux toujours passer par les parenthèses capturantes :

/-CC(.+)\.pdf$/

À voir pour l'expression.
Salut et merci tout l monde,
voilà mon résultat final grâce à vos différent commentaires :

preg_match('#\w+\d+-CC(\w{3,})\.pdf#i', $fichier, $result);

Pour infos, je me suis servi également de ce site

A priori, j'ai torturé mon nom de fichier et le résultat escompté est tjs correct...
Maintenant je me lance dans la lecture conseillée par greg-Lu
Merci encore, et à bientôt

Résolu
Modérateur
le pauvre, ça fait trois jours qu'il planche comme un malade, il trouve la solution et on lui dit :
Zelalsan a écrit :
Normalement tu n'as pas besoin de faire aussi complexe.

Smiley lol

La balle, il se la tire maintenant ou tout de suite ? Smiley cligne
Re,
Zelalsan, dis moi tu respectes bien t'as signature...Tu vas donc réussir dans la vie Smiley cligne

Du coup j'approfondirais cela prochainement, je m'attarde sur le reste de mon développement puisque cela fonctionne...

Merci pour votre aide en tous les cas.
Au cas où il se la tire, pour mourir moins bête hein Smiley cligne

$ch = "F2014030756-CCD568.pdf";
preg_match("/-CC(.+)\.pdf$/", $ch, $m);
echo $m[1];