Ваши (.+?)
детали слишком широкие.Попробуйте это:
"\\b((?:Building|Door|Dr)\\s\\d+)\\b"
Затем просто возьмите то, что находится в перехватах из группы 1. Убедитесь, что вы отключаете сопоставление с учетом регистра, если вы этого не хотите.
Я предполагаюна результаты, которые вы хотите здесь.На самом деле вы можете искать это вместо этого:
"\\b(Building\\s\\d+)\\s(Door\\s\\d+)\\b"
Редактировать: Исходя из ваших комментариев, простейший способ, который я могу придумать, это:
"\\bBuilding\\s(?:(\\d+)\\sDoor\\s(\\d+)|Dr\\s(\\d+)\\s(\\d+))\\b"
Удаление двойных обратных косых черт для ясности:
/\bBuilding\s(?:(\d+)\sDoor\s(\d+)|Dr\s(\d+)\s(\d+))\b/