Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 13/12/2008, à 14:18

poupougnac

Incompréhension d'une regex (expression régulière)

Bonjour à tous,
je souhaite faire un regex pour récupérer des liens sur mes pages. J'en ai un qui marche, mais que je ne comprend pas yikes

Le voici:

#<a href="(.*?)"(.*?)>(.*?)</a>#is

Je ne comprend simplement pas pourquoi à la place de (.*?), un (.*) ne marcherait pas tout autant (car j'ai essayé ça ne marche pas).

D'après wikipedia sur les REGEX: .http://fr.wikipedia.org/wiki/Expression_rationnelle

. permet n'importe quel caractère
* signifie 0, une ou plusieurs fois
? signifie 0 ou une fois

Dernière modification par poupougnac (Le 13/12/2008, à 17:18)

Hors ligne

#2 Le 13/12/2008, à 18:19

Link31

Re : Incompréhension d'une regex (expression régulière)

.*? est la syntaxe "non-greedy" de Perl (ou PCRE). Ça permet en gros de s'arrêter à la première occurrence de ce qui suit, plutôt qu'à la dernière occurrence.

"(.*?)" est plus ou moins l'équivalent de "([^"]*)", mais la syntaxe de PCRE permet entre autres plus de possibilités d'imbrication.

Hors ligne

#3 Le 14/12/2008, à 00:12

poupougnac

Re : Incompréhension d'une regex (expression régulière)

merci pour ton explication!

Hors ligne