Je pense que le problème est que vous interprétez mal comment un quantificateur non gourmand agit. Une fois qu'il fonctionne, oui, il s'arrête plus tôt qu'il ne le ferait autrement. Mais ce n'est pas au courant de ce qui vient avant (ou potentiellement le texte qui vient plus tard, soit). Il est seulement concerné par sa position actuelle. Par conséquent, l'expression régulière que vous avez affichée correspondra tous:
">Hello >If see below!"
Voyons voir comment cela fonctionne:
/>[A-Z0-9].*?see below[^,\.<]*/
Le regex recherche d'abord « > » dans « bcs> Bonjour> Si voir ci-dessous! ", et trouve le premier, qui est celui juste avant" Bonjour ". Ok, nous allons vérifier la partie suivante de l'expression:
[A-Z0-9]
Le caractère suivant est un H, qui correspond au motif [A-Z0-9]. Encore bon! Suivant:
.*?
Maintenant, nous correspondent tous les caractères non-retour à la ligne jusqu'à ce que nous arrivons à la première instance pour faire correspondre les expressions restantes de "voir ci-dessous [^ ,. <] *". Si nous n'avions utilisé qu'un simple quantificateur glouton, nous pourrions faire correspondre plusieurs cas de "voir ci-dessous [^, <] *" jusqu'à ce que nous ayons fait correspondre le dernier possible. (Donc, si votre chaîne avait continué, et qu'il y avait un autre texte correspondant à ce modèle, cela l'aurait également capturé) Le quantificateur non-gourmand ne signifie pas que votre motif entier retournera le plus petit résultat possible de toutes les correspondances possibles dans la chaîne. Il dicte juste comment ce caractère particulier correspond aux fonctions.
Vous pouvez essayer le modèle suivant alors:
/>[A-Z0-9][^>]*?see below[^,\.<]*/
Espérons que cela efface ça!
Votre question n'a pas de sens étant donné votre extrait de code. Votre déclaration remplace le motif avec rien. Votre réponse suggère que vous voulez le remplacer par quelque chose. – cletus
Le programme fait ce que vous lui avez demandé de faire. Ce n'est pas clair ce que vous voulez obtenir. Donne un autre exemple. – jbasko
C'est quelque chose en rapport avec la regex non gourmande, je pense que c'est assez clair, pourquoi pas? – omg