Expression regulière
Najahp
-
Dalida Messages postés 7114 Date d'inscription Statut Contributeur Dernière intervention -
Dalida Messages postés 7114 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
je souhaite extraire le contenu qui se trouve entre deux parenthèse par une expression regulière
voilà j'ai une chaine qui peut s'ecrire de deux façon
$chaine_1 ="fonction nom_fonction($par1, $par=null, $par=null) ";
$chaine_2 ="fonction nom_fonction() ";
je souhaite avoir dans un tableau :
nom_fonction
$par1
$par2,
$par3
Merci d'avance
je souhaite extraire le contenu qui se trouve entre deux parenthèse par une expression regulière
voilà j'ai une chaine qui peut s'ecrire de deux façon
$chaine_1 ="fonction nom_fonction($par1, $par=null, $par=null) ";
$chaine_2 ="fonction nom_fonction() ";
je souhaite avoir dans un tableau :
nom_fonction
$par1
$par2,
$par3
Merci d'avance
Configuration: Windows XP Firefox 3.0.5
12 réponses
-
salut,
et ?…
<edit>
et qu'as-tu fait jusqu'à présent, quel est ton problème ?
</edit>
-
Salut,
en effet ma question est la suivante
j'ai besoin d'une expression régulier en php qui permet d'extraire de la chaine $x le contenu $y
tel que
$x = "fonction nom_fonction($par1, $par=null, $par=null) ";
$y = nom_fonction, $par1, $par2, $par3 ;
Merci d'avance -
alors, de tête et en fermant les yeux…
`^function\s[.*]([.*])$`
comme ça tu devrais récupérer le nom de la fonction et la chaine des variables que tu peux après éclater avec split().
mais je ne suis pas sûr pour les parenthèses.
essaie déjà ça je regarde pour les parenthèses et extraire aussi les variables.
tu veux juste disséquer la chaîne, tu ne veux pas faire de réflexion ?
-
les parenthèses sont bien des métacaractères, le $ aussi.
essaie :`^function\s[.+]\(\$[.+],\s\$[.+],\s\$[.+])$`
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Merci Mathieu, mais c'est pas ça exactement ce que je souhaite
je souhaite me débarrasser des deux parenthèse et comme résultat c'est soit un tableau
ou bien une chaine dont les éléments soit séparé par une virgule.
Input = "fonction nom_fonction($par1, $par=null, $par=null) ";
output = "nom_fonction, $par1, $par2, $par3 ";
Cordialement -
c'est bien ce que j'avais compris…
tu l'utilises comme ton expression régulière ?
en utilisant preg_match() et l'expression tu devrais avoir un tableau avec les infos.
+ preg_match()
-
Salut,
Afin de tester votre solution, voila un exemple que j'ai fait
et malheuresement ça marchait pas
$function_elements = array() ;
$chaine = 'function Param($pl_idelm,$mandt = false,$default =
null,$iname = null)';
preg_match('^function*[.+]($[.+],$[.+],$[.+])$', $chaine, $function_elements);
foreach($function_elements as $key => $value)
{
echo $value ;
}
Bien Cordialement -
essaie juste :
preg_match('^function [.+]([.*])$', $chaine, $function_elements); print_r($function_elements)
-
Salut,
je reçois ce message d'erreur.
Warning: preg_match() [function.preg-match]: No ending delimiter '^' found in C:\Program Files...........
Merci -
oups…
il lui fait ses délimiteurs à lui…
moi j'utilise les accents graves mais je les avais oublié.preg_match('`^function [.+]([.*])$`', $chaine, $function_elements); print_r($function_elements) -
-
salut,
ça fonctionne ?