J'ai une erreur dans ma regex, que quelqu'un a écrit pour moi. J'ai essayé d'écrire ma propre regex, mais c'est juste trop dur pour moi de craquer.Regex ne fonctionne pas avec 1 paramètre
J'ai un "tag" personnalisé comme {module: agenda: getlist: params (2)} Mais .. si je n'ai que 1 param l'expression régulière ne voit pas le 2 mais obtient le mauvais code.
Ceci est mon code regex
$paramcount = preg_match_all('{
# [^,]+ everything that isn't a comma
# (?<=...) is a look behind. Meaning that the part that has the 3 dots
# becomes matched but not goes through the rest of the regex
# matches "null" in "params(null"
(?<=params\()[^,]+
| # this is the separation dash
# (?=...) is a look ahead, same as the look behind but than on the end
# matches "null" in " null)"
(?<=)[^,]+(?=\))
|
# matches "true" in ", true" and ""foo"" in ", "foo""
(?<=,)[^,]+
}x', $data, $parammatches);
Alors, quand je tente de faire correspondre .. le résultat est:
$array = array
(
[0] => params(2
);
Ce n'est pas ce que je veux, je veux seulement 2 pour être correspondait pas le reste. Quand je lui donne plus de paramètres comme ceci "params (null, 2)" tout fonctionne et j'ai 2 belles valeurs de tableau.
Quelqu'un peut-il me guider ou m'aider ici.
EDIT: Plus de sortie peut être trouvée sur pastebin. http://pastebin.com/x0WL9K4u
Quelle est exactement ce que vous voulez? Extraire tous les paramètres passés au param entre parenthèses et les mettre dans le tableau? –
Oui, je ce que je veux. En fait, je veux obtenir tout ce qui est entre les crochets "params (i-veux-ces-valeurs)" –
Pouvez-vous s'il vous plaît poster plus de données d'entrée? –