Expression regulière
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
-
Contributeursalut,
ça fonctionne ?
-
Merci bcp :)
-
Contributeuroups…
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,
je reçois ce message d'erreur.
Warning: preg_match() [function.preg-match]: No ending delimiter '^' found in C:\Program Files...........
Merci -
Contributeuressaie juste :
preg_match('^function [.+]([.*])$', $chaine, $function_elements); print_r($function_elements)
-
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 -
Contributeurc'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()
-
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 -
Contributeurles parenthèses sont bien des métacaractères, le $ aussi.
essaie :`^function\s[.+]\(\$[.+],\s\$[.+],\s\$[.+])$`
-
Contributeuralors, 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 ?
-
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 -
Contributeursalut,
et ?…
<edit>
et qu'as-tu fait jusqu'à présent, quel est ton problème ?
</edit>