Я пытаюсь сопоставить две адресные строки ниже (в основном вымышленные адреса):
2320 ZINER CIR East 43123
1111 ZINER CIR East Bernstadt 43123
Мое регулярное выражение построено с использованием названий городов, а Восточный Бернштадт — это название города. Однако улицы также могут заканчиваться на «Восток». Тогда мое затруднительное положение заключается в том, что если я жадно сопоставлю «Восток», например:
\d+ [^ ]+ CIR( East)?( East Bernstadt)?(?: \d+)?
...тогда совпадет только первая строка (другая - частичное совпадение). Если я использую неохотное совпадение, например:
\d+ [^ ]+ CIR( East)??( East Bernstadt)?(?: \d+)?
... вторая строка совпадает, но не первая.
Как изменить регулярное выражение, чтобы обе строки полностью совпадали? «Восток» и «Восточный Бернштадт» должны оставаться в отдельных частях выражения.
EDIT: я не могу рассматривать "Восток" и "Восточный Бернштадт" с одной группой скобок; оба приведенных выше выражения должны совпадать, но также должно совпадать «1234 Ziner CIR East East Bernstadt» (некоторые улицы имеют стороны света).