Page 1 sur 1

Récupérer ce qu'il y a entre parenthèses grâces aux expressi

Posté : 30 nov. 2007, 01:40
par Nico128
Salut à tous. J'ai des chaînes qui contiennent des parenthèses. Mon but serait de récupérer dans une variable la chaîne sans la parenthèse, et dans une autre, la parenthèse ainsi que son contenu. Exemple :

Code : Tout sélectionner

Bla bla bla (USA) Blô Blô Blô (EU) Bli Bli Bli (JP) Ki Kou Lol (FR)
Ce qui me donnerait :

Code : Tout sélectionner

Bla bla bla (USA) Blô Blô Blô (EU) Bli Bli Bli (JP) Ki Kou Lol (FR)
Pendant que j'écrivais ce message je cherchais encore comment faire. Puis j'ai fini par trouvé une méthode artificiel qui marche très bien, mais je doute que c'est comme ça qu'il faut faire en réalité ^^
$Nom = split('\(.*\)','Bla Bla Bla (USA)');
$Nom = trim($Nom[0]);

$Parenthese = split($Nom,'Bla Bla Bla (USA)');
$Parenthese = trim($Parenthese[1]);
Alors pendant que j'y suis, comment faudrait-il faire normalement ?

Et autre question, pendant que je testais, je voulais mettre [:alnum:] au lieu de .*? mais rien ce se passait. J'ai du mal à comprendre pourquoi ?

Merci d'avance !

Posté : 30 nov. 2007, 04:03
par Xenon_54
<?php
$data = 'Bla bla bla (USA)
Blô Blô Blô (EU)
Bli Bli Bli (JP)
Ki Kou Lol (FR)';

preg_match_all('/(.*?) \(([A-Z]+)\)/', $data, $matches, PREG_SET_ORDER);
print_r($matches);
?>

Code : Tout sélectionner

Array ( [0] => Array ( [0] => Bla bla bla (USA) [1] => Bla bla bla [2] => USA ) [1] => Array ( [0] => Blô Blô Blô (EU) [1] => Blô Blô Blô [2] => EU ) [2] => Array ( [0] => Bli Bli Bli (JP) [1] => Bli Bli Bli [2] => JP ) [3] => Array ( [0] => Ki Kou Lol (FR) [1] => Ki Kou Lol [2] => FR ) )

Posté : 30 nov. 2007, 19:54
par v4gab0nd
Je m'incruste un peu dans le sujet, mais j'ai fais quelques tests et recherches et je me demande à quoi servent les / (en début et en fin).
Avec Google, j'ai trouvé la signification de \ et de | mais pas du /

/(.*?) \(([A-Z]+)\)/

Posté : 30 nov. 2007, 20:44
par Truc
Ce sont juste les délimiteurs de l'expression régulière

Posté : 02 déc. 2007, 13:58
par Nico128
Merci je regarderai ça.

Edit : Merci 4a marche bien!