Récupérer ce qu'il y a entre parenthèses grâces aux expressions régulières

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Récupérer ce qu'il y a entre parenthèses grâces aux expressions régulières

par Nico128 » 02 déc. 2007, 13:58

Merci je regarderai ça.

Edit : Merci 4a marche bien!

par Truc » 30 nov. 2007, 20:44

Ce sont juste les délimiteurs de l'expression régulière

par v4gab0nd » 30 nov. 2007, 19:54

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]+)\)/

par Xenon_54 » 30 nov. 2007, 04:03

<?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 ) )

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

par Nico128 » 30 nov. 2007, 01:40

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 !