Группа регулярных выражений захватывает перекрытие - PullRequest
0 голосов
/ 25 марта 2020

Я пытаюсь идентифицировать два названия улиц, таких как (главная улица четвертого квартала) и (проспект занятых), используя следующий код:

std::regex ex("([a-zA-Z]+[\\s\\-]*)+\\s(and|&)\\s([a-zA-Z]+[\\s\\-[a-zA-Z]+]*)");

Но это возвращает первую группу как "Четвертая четверть" главная улица и проспект занятых », а вторая группа -« проспект занятых »

Кажется, что группы перекрываются. Что я могу сделать, чтобы это исправить?

РЕДАКТИРОВАТЬ: решено. Сработало следующее:

std::regex ex("([a-zA-Z]+[\\s\\-[a-zA-Z]+]*)+\\s(and|&)\\s([a-zA-Z]+[\\s\\-[a-zA-Z]+]*)");

Мне нужно было различать (слово) (пробел) (слово) (пробел) и (слово) (пробел) (и) (слово) (пробел)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...