Я пытаюсь извлечь одинокий # в конце адресов, но только если не после определенных обозначений.
Вот регулярное выражение, которое я тестирую:
/(?<!apt|appt|appartment|ste|suite|box)[,.]? ?# ?([0-9]+)$/i
В этом случае регулярное выражение должно завершиться ошибкой:
123 W Somewhere St Apt # 321
Регулярное выражение должно найти совпадение в этом:
123 W Somewhere St # 321
Тем не менее, он соответствует обоим вышеперечисленным.
Я обнаружил, что если я заменю [,.]? ?# ?
на просто #
, то это сработает.
Однако это означает, что простое удаление пробела или добавление точки к адресу приведет к его сбою.
Как мне заставить мой негативный просмотр работать и позволить моему регулярному выражению оставаться гибким в этом случае?
Реализовано в PHP 5.3.