Désolé si la question est mal formulée (ou si elle a déjà été posée. J'ai vraiment essayé de la trouver).
Est-il possible, si un personnage spécifique d'une classe de personnages se trouve être le dernier personnage (même s'il peut rester ailleurs), de l'exclure de la correspondance ? Ce sur quoi je travaille est similaire à la recherche d'urls dans des chaînes plus larges, et j'ai besoin d'inclure les points dans le modèle mais SI le dernier caractère est un point, l'exclure comme fin de phrase.
Ainsi, dans un motif (autres url) "(/[a-zA-Z0-9._-]*) ?", existe-t-il un moyen d'exclure UNIQUEMENT la dernière période, si elle est présente ? Notez que ce qui précède serait spécifiquement les segments d'url après le domaine, mais je veux correspondre seulement à
"/some_uri/segments.php"
dans les deux
"www.domain.com/some_uri/segments.php"
ET
"www.domain.com/some_uri/segments.php."
tout en permettant l'existence de plus d'une période dans l'uri.
Si ce qui précède n'est pas clair, imaginez que je demande un moyen d'exclure la dernière lettre d'un mot, si et seulement si c'est un "z". Ainsi, 'dozzer' et 'dozzerz' correspondent tous deux à 'dozzer' dans une structure de phrase (donc... pas de correspondance avec la position à la FIN d'une chaîne). J'ai joué avec des lookaheads et autres, mais je n'ai pas encore trouvé de solution. Je me demande si ce n'est pas possible (avec une seule regex).
Merci pour votre temps !
EDIT
Je m'excuse de ne pas avoir été plus clair, mais je dois effectuer la correspondance à l'intérieur d'un BLOC de texte. Ce que je fais, c'est parcourir le texte, trouver toutes les adresses web et leur appliquer des balises. Je ne peux donc pas utiliser d'opérateurs positionnels, tels que $, pour faire correspondre la fin de la chaîne. Ce qui a été le plus gros problème.
À moins que quelqu'un d'autre ne publie une réponse qui fonctionne après cela, je pense que je vais devoir être d'accord avec M477h3w1012 et conclure que cela ne peut pas être accompli dans la regex seule. Je vais devoir effectuer une vérification conditionnelle après avoir trouvé des correspondances pour déterminer si elles ont un point de fin. Mais je vous remercie tous, encore une fois, pour votre temps et votre aide :-)