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
#-o et donc :?:

Re: Séparer les valeurs numériques des chaines de caractéres

Posté : 12 oct. 2010, 16:30
par stealth35
#-o 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 :wink:

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 :wink: .

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 :wink: .
sans regexp, on pourrait avec un substr, mais si le type de donnée change c'est foutu