J'essaye d'extraire un seul # sur la fin des adresses, mais seulement après certaines désignations.Négatif look derrière avec la longueur variable match avant
Voici le regex je teste:
/(?<!apt|appt|appartment|ste|suite|box)[,.]? ?# ?([0-9]+)$/i
Le regex devrait échouer dans ce cas:
123 W Somewhere St Apt # 321
Le regex devrait trouver une correspondance dans ce:
123 W Somewhere St # 321
Cependant, il correspond à la fois ci-dessus.
J'ai trouvé que si je change [,.]? ?# ?
simplement #
alors cela fonctionne.
Cependant, cela signifie que le simple fait de supprimer un espace ou d'ajouter un point à l'adresse le rejettera.
Comment puis-je faire fonctionner mon look négatif et permettre à mon regex de rester flexible dans ce cas?
Implémenté en PHP 5.3.
Cela fonctionne, mais ne me permet pas de remplacer le signe # quand je l'utilise dans preg_replace(). – eComEvo
@EcomEvo: Il suffit de déplacer le '\ K' avant le' # ' –