J'utilise des chaines de ce genre :
CITATION
embarqué | ABEEMQRU *J11
Je voudrais réussir à trier cette chaîne pour mettre chaque morceau dans un tableau, à savoir :
"embarqué", "ABEEMQRU" et "J11".
La première partie (ici embarqué) peut comporter des caractères alphabétiques (a-zA-Zéèà..., \w quoi) et des tirets.
La deuxième partie (ABEEMQRU) des lettres majuscules (A-Z) et la troisième des chiffres et des lettres ([A-Z0-9]).
Toutefois, la regex suivante ne marche pas!
CODE
$chaine = preg_replace("/\s/", "", 'abaca | AAABC *N11'); // on supprime les espaces
preg_match_all('/([^\w\-]+)\|([\w]+)*([A-Z0-9]+)/',$chaine,$match); //on tente d'extraire les trois parties
preg_match_all('/([^\w\-]+)\|([\w]+)*([A-Z0-9]+)/',$chaine,$match); //on tente d'extraire les trois parties
Où est le problème ?
Merci.
//EDIT : Tout est bien qui finit bien, j'avais un ^ devant le \w\- et j'avais oublié le \ devant *.
Fatigue, fatigue!
REGEX finale : /([\w\-]+)\|([\w]+)\*([A-Z0-9]+)/
