Page 1 sur 1
Séparer les valeurs numériques des chaines de caractéres
Posté : 12 oct. 2010, 15:49
par su4p
Bonjour !
Je me suis rendu compte d'une difficulté quand il a fallu que je sépare les valeurs numériques des chaines de caractères dans une chaine de caractère.
Exemple : 11testORL20101012testCODE
je veux : tab[0]=11, tab[1]=testORL , tab[2]=20101012, tab[3]=testCODE , facile ! mais là je vois pas trop qu'elle direction prendre j'aimerais un explode(numeric) voyez ?
J'espère avoir été clair , merci pour la lecture.
Re: Séparer les valeurs numériques des chaines de caractéres
Posté : 12 oct. 2010, 15:55
par stealth35
hello, tu peux t'orienter vers les regexp
Re: Séparer les valeurs numériques des chaines de caractéres
Posté : 12 oct. 2010, 16:20
par su4p
Ben bof si je fais :
preg_match('#[:alpha:]#', $txt, $out)
je vais me retrouver avec testORLtestCODE comment je sépare les 2 après ?
Re: Séparer les valeurs numériques des chaines de caractéres
Posté : 12 oct. 2010, 16:22
par stealth35
normale ton regexp correspond pas a la chaine
Re: Séparer les valeurs numériques des chaines de caractéres
Posté : 12 oct. 2010, 16:25
par su4p

et donc

Re: Séparer les valeurs numériques des chaines de caractéres
Posté : 12 oct. 2010, 16:30
par stealth35

et donc

bah fait le bon regexp ca marchera...
Re: Séparer les valeurs numériques des chaines de caractéres
Posté : 12 oct. 2010, 16:35
par su4p
Je suis pas non plus super au point au niveau des expressions régulières néanmoins je sais que : [:alpha:] -> tout caractère alphabétique [a-zA-Z] plus accentués.
Re: Séparer les valeurs numériques des chaines de caractéres
Posté : 12 oct. 2010, 16:42
par stealth35
Je suis pas non plus super au point au niveau des expressions régulières néanmoins je sais que : [:alpha:] -> tout caractère alphabétique [a-zA-Z] plus accentués.
$str = '11testORL20101012testCODE';
preg_match('/^([0-9]+)([a-zA-Z]+)([0-9]+)([a-zA-Z]+)$/u', $str, $matches);
print_r($matches);
Re: Séparer les valeurs numériques des chaines de caractéres
Posté : 12 oct. 2010, 16:50
par su4p
Ha ben oui ça marche j'aurais préféré une explication des details plus avancée mais bon ça me va aussi merci beaucoup.
Re: Séparer les valeurs numériques des chaines de caractéres
Posté : 12 oct. 2010, 16:59
par stealth35
Ha ben oui ça marche j'aurais préféré une explication des details plus avancée mais bon ça me va aussi merci beaucoup.
c'est du basic
^([0-9]+)([a-zA-Z]+)([0-9]+)([a-zA-Z]+)$
^ : debut de la chaine
([0-9]+) : 1er groupe : 1 ou plusieurs chiffre
([a-zA-Z]+) : 2eme groupe : 1 ou plusieurs lettre
([0-9]+) : 3eme groupe : 1 ou plusieurs chiffre
([a-zA-Z]+) : 4eme groupe : 1 ou plusieurs lettre
$ : fin de la chaine
option
u, c'est pour l'UTF-8

Re: Séparer les valeurs numériques des chaines de caractéres
Posté : 12 oct. 2010, 17:06
par su4p
Parfait, je vois exactement maintenant.
Malheureusement les expressions régulières n'étaient pas au programme de mon BTS, pourtant utiles.
Merci de combler mes lacunes

.
Re: Séparer les valeurs numériques des chaines de caractéres
Posté : 12 oct. 2010, 17:09
par stealth35
Parfait, je vois exactement maintenant.
Malheureusement les expressions régulières n'étaient pas au programme de mon BTS, pourtant utiles.
Merci de combler mes lacunes

.
sans regexp, on pourrait avec un substr, mais si le type de donnée change c'est foutu