Я пытаюсь идентифицировать два названия улиц, таких как (главная улица четвертого квартала) и (проспект занятых), используя следующий код:
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]+]*)");
Мне нужно было различать (слово) (пробел) (слово) (пробел) и (слово) (пробел) (и) (слово) (пробел)