У меня есть регулярное выражение, которое я использую для получения номеров домов с уличных адресов.Regex не соответствует номерам, за которыми следует определенный символ
\d+([a-z -A-Z]+)?
Это прекрасно работает для адресов, как Fake Street 123
и Fake Street 123a
. Но теперь я пришел по адресу, вроде 2. Fake Street 123
, и, конечно, выражение соответствует 2.
, а не 123
. Как я могу изменить выражение, чтобы не соответствовать цифрам, за которыми следует .
(то есть 23. Fake Street 123a
не должен соответствовать 23.
, но 123a
)?
Это не совсем понятно, так как '([A-Z-A-Z] +)?' Это * опция * подшаблон, и она не ограничивает боковой контекст правой руки для цифр. * Что такое ** обязательный ** контекст для цифр? * Обратите внимание, что у вас есть диапазон между пробелом (32) и 'A' (65), чем на самом деле соответствует больше, чем буквам и пробелу. –
Не можете ли вы просто сохранить свое регулярное выражение и использовать последнее совпадение, если найдено несколько совпадений? – grek40
извините, но вам нужно 23. и 123a? –