Quelqu'un pourrait-il expliquer ces deux termes de manière compréhensible?
Réponses
Trop de publicités?Gourmande va consommer autant que possible. À partir de http://www.regular-expressions.info/repeat.html nous voyons l'exemple de d'essayer de faire correspondre les balises HTML avec <.+>
. Supposons que vous disposez des éléments suivants:
<em>Hello World</em>
Vous pouvez penser que l' <.+>
(. signifie rien et + signifie répétée) ne correspondent à l' <em>
et de la </em>
, alors qu'en réalité il sera très gourmand, et à partir de la première <
au dernier >
. Cela signifie qu'il va correspondre <em>Hello World</em>
au lieu de ce que vous vouliez.
Rendant paresseux (<.+?>
) de l'en empêcher. En ajoutant l' ? après le + et, nous le disons à répéter que peu de fois que possible, de sorte que la première >
il s'agit dans l'ensemble, est l'endroit où nous voulons arrêter la recherche.
Je vous encourage à télécharger RegExr, un excellent outil qui vous aidera à explorer les Expressions Régulières - je l'utiliser tout le temps.
Greedy signifie que votre expression correspondra à un groupe aussi large que possible, ce qui signifie qu'elle correspondra au plus petit groupe possible. Pour cette chaîne:
abcdefghijklmc
et cette expression:
a.*c
Un match gourmand correspondra à la chaîne entière et une correspondance paresseuse correspondra uniquement au premier abc
.
De l' expression régulière
Les quantificateurs standard dans les expressions régulières sont gourmands, ce qui signifie qu'ils correspondent le plus possible, ne rendant que ce qui est nécessaire pour correspondre au reste de l'expression rationnelle.
En utilisant un quantificateur paresseux, l'expression tente d'abord la correspondance minimale.