Page 1 sur 1

Renvoyer chaine de caractère entre 2 caractères spécifiques

Posté : 14 avr. 2010, 15:47
par gui
Bonjours à vous,
Je cherche une fonction qui permettrai de faire une peu comme "substr" (renvoye la chaine de caract à partit de la position voulue jusqu'à une autre position).
Dans mon cas je cherche donc une fonction qui puisse renvoyer une chaine de caract compise entre deux caratère spécifique: ici "|" pour les 2 caractères.
Une telle fonction ou son dérivé existe t'elle, j'ai fait quelque recherche mais sans succes.
Meric d'avance
Cordialement gui

Re: Renvoyer chaine de caractère entre 2 caractères spécifiques

Posté : 14 avr. 2010, 15:53
par stealth35
hello, regarde du coté des expressions relationnelles
preg_match
:wink:

Re: Renvoyer chaine de caractère entre 2 caractères spécifiques

Posté : 14 avr. 2010, 16:07
par gui
J'ai bien regardé preg_match, le problème est que celui ci renvoie un nombre 0 si il n'a pas trouvé l'expression et 1 si il l'a trouvé or j'aimerai qu'il me renvoie la chaine de caractère entre les 2 " | ". :cry:

Re: Renvoyer chaine de caractère entre 2 caractères spécifiques

Posté : 14 avr. 2010, 16:10
par stealth35
faut récupérer ton paramètre $matches

Re: Renvoyer chaine de caractère entre 2 caractères spécifiques

Posté : 14 avr. 2010, 16:23
par gui
Ok je commence à comprendre ca peut marcher
Par exemple, dans ">gi|11514025|PRDB|814716| Homo sapiens |from 2 to 11 | 1" pour récupérer le numéros, ici "11514025".
Ca donnerai qq chose du type

preg_match('/[0-9]/', $host, $matches);

Je regarde si ca marche

Re: Renvoyer chaine de caractère entre 2 caractères spécifiques

Posté : 14 avr. 2010, 16:29
par stealth35
plus ou moins
[0-9] c'est bien pour les chiffres, par contre la y'en a qu'un seul, comme t'en a 8 faudrait faire : [0-9]{8} (\d correspond a [0-9], ducoup \d{8})

je t'invite a allé voire ce site : http://www.expreg.com
pour t'aider dans tes modif y'a un site sympa : http://gskinner.com/RegExr/

:wink:

Re: Renvoyer chaine de caractère entre 2 caractères spécifiques

Posté : 14 avr. 2010, 16:39
par gui
Effectivement cela ne prendra que le premier chiffre il me faut les prendre tous par contre je ne peut pas connaitre leur nombre exact (change à chaque fois)
Pour les sites je te remercis je vais regarder ca mais le second ne fonctionne pas, peut être parsque je suis sous unix?

Re: Renvoyer chaine de caractère entre 2 caractères spécifiques

Posté : 14 avr. 2010, 16:48
par stealth35
ca devrait marche si ta flash d'install

pour ton expression ca devrais ressembler a ca : \|(\d+)\|

Re: Renvoyer chaine de caractère entre 2 caractères spécifiques

Posté : 14 avr. 2010, 16:58
par gui
C'est bon ca marche
Voilà ce que j'ai mis
$name2=preg_match('/\d+/', $ligne, $matches);
$name2=$matches[0];
Meric beaucoup stealth35 toujours là pour donner un coup de main ca fiat plaisir
Encore merci à toi
bye