probleme de pattern et ereg

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : probleme de pattern et ereg

par Invité » 13 juin 2007, 18:03

cj ai trouve ca

ca al air de fonctionne.
merci pour l aide; :D

preg_match_all("/[0-9]{5}(.*)FACTURATION/",$texte,$matches);

par Invité » 13 juin 2007, 17:23

:D k du coup je passe a pregmatchall

mon fichier texte est organise ainsi

78454 : facture de
blablah
FACTURATION

45897: facture de
blablah
FACTURATION

et ainsi de suite

avec ton exemple:

preg_match_all("/[0-9]{5}.FACTURATION/" ,$texte,$matches);

ja i mis le point entre les deux je sais pas quoi mettre.

je ne trouve pas de doc clair a ce sujet.

merci pour ta reponse. :D

par Ryle » 13 juin 2007, 17:06

Effectivement ton expression comporte quelques erreur, nottament dans l'utilisation de "^" et "$". Ces caractères représentent le début et la fin de la chaine, il doivent donc être placé en début et fin de ton pattern mais ne renverront pas de résultat si ta chaine ne commence ou ne fini par le pattern cherché (même s'il est écrit en gros au milieu :))

Par ailleurs le pipe "|" est un "OU" logique qui te permet d'insérer plusieurs possibilités en un même endroit : a|b <=> caractère a ou caractère b .. du coup [1-9]|[1-9] signifierait un caractère de 1 à 9, ou un caractère de 1 à 9 ;)

As tu quelques exemples concrets de la chaine à retrouver ? Si le format est "0000FACTURATION" alors tu peux simplement faire un masque du genre : /[0-9]{5}FACTURATION/
soit 5 chiffres de 0 à 9 suivi de la chaine "FACTURATION" en toutes lettre et majuscules, située n'importe où dans la chaine source (début, milieu ou fin) :)

probleme de pattern et ereg

par Invité » 13 juin 2007, 16:36

bonjour a tous

desole ,j ai du mal avec les patterns.

j ai un fichier texte bien delimite avec le no de facture (toujours 5 chiffres) et le mot FACTURATION.
clairement delimite et se repete X fois.
voila ce que j ai fait mais ca fonctionne pas
je suis alle sur les doc mais cest vraiment obscure pour moi!!! :oops:
if (ereg ("(^([1-9]|[1-9]|[0-9]|[1-9]|[0-9])$.(^(FACTURATION)$))", $texte, $regs)) 
{
print_r($regs);
}
else
{
echo "pas bien";
}
merci pour vos aides! :D