Question expressions régulières preg_match_all PHP

ecocentric

WRInaute accro
Je me demande s'il est possible, lorsque l'on fait un pregmatchall sous PHP d'écrire une expression règulière qui fasse ce qui suit:

unmot(destrucsonsaitpasquoi)encoreunmot(.*?)encoreunmot

L'idée c'est que je récupère uniquement le contenu de (.*?) et pas celui de (destrucsonsaitpasquoi).

Sait-on exprimer (destrucsonsaitpasquoi) en regex et comment?
 

phpmikedu83

WRInaute passionné
ecocentric a dit:
Je me demande s'il est possible, lorsque l'on fait un pregmatchall sous PHP d'écrire une expression règulière qui fasse ce qui suit:

unmot(destrucsonsaitpasquoi)encoreunmot(.*?)encoreunmot

L'idée c'est que je récupère uniquement le contenu de (.*?) et pas celui de (destrucsonsaitpasquoi).

Sait-on exprimer (destrucsonsaitpasquoi) en regex et comment?

Ben des trucs on sait pas quoi, c'est:
Code:
.*
nan?
 

ecocentric

WRInaute accro
Pas tout-à-fait mais j'ai trouvé en testant ta réponse.
En fait:
.*? indique une succession de n'importe quoi;
(.*?) fait la même chose mais réalise en plus l'extraction.

"<tr><td>fruit</td>jhshdkjqdkjsd<td>pomme</td><td>verte</td></tr>"
avec comme regex
/\<\/td\>.*?\<td\>(.*?)\<\/td\>/i
va donner "pomme" (il y a un ? en plus pour que l'expression ne soit pas gloutonne).
 

phpmikedu83

WRInaute passionné
ecocentric a dit:
Pas tout-à-fait mais j'ai trouvé en testant ta réponse.
En fait:
.*? indique une succession de n'importe quoi;
(.*?) fait la même chose mais réalise en plus l'extraction.

"<tr><td>fruit</td>jhshdkjqdkjsd<td>pomme</td><td>verte</td></tr>"
avec comme regex
/\<\/td\>.*?\<td\>(.*?)\<\/td\>/i
va donner "pomme" (il y a un ? en plus pour que l'expression ne soit pas gloutonne).

On se fait avancer mutuellement dans la gestion des regexp, c'est cool ;-)
 

Discussions similaires

Haut