У меня есть приложение Xamarin Forms, которое использует Xamarin. Мобильный на платформах, чтобы получить текущее местоположение, а затем установить текущий адрес. Адрес возвращается в формате строки с разрывами строк.Как извлечь компоненты адреса из строки?
Адрес может выглядеть следующим образом:
111 Mandurah Tce
Mandurah WA 6210
Australia
или
The Glades
222 Mandurah Tce
Mandurah WA 6210
Australia
У меня есть этот код, чтобы разбить его на почтовый адрес (включая номер), пригород, штат и почтовый индекс (не очень элегантный, но он работает)
string[] lines = address.Split(new string[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries);
List<string> addyList = new List<string>(lines);
int count = addyList.Count;
string lineToSplit = addyList.ElementAt(count - 2);
string[] splitLine = lineToSplit.Split(null);
List<string> splitList = new List<string>(splitLine);
string streetAddress = addyList.ElementAt (count - 3).ToString();
string postCode = splitList.ElementAt(2);
string state = splitList.ElementAt(1);
string suburb = splitList.ElementAt(0);
Я хотел бы указать номер улицы, а в предыдущей но это лучший способ сделать это, учитывая количество может быть Lot 111 (нужно только захватить 111, а не слово LOT), или 123A или 8/123 - и иногда что-то как 111-113 также возвращен
Я знаю, что я могу использовать регулярное выражение и искать все возможные комбо, но есть ли элегантный встроенный тип решения, прежде чем я начну писать более грязный код (и я знаю, что выше код не особенно устойчив)?
Это именно то, что нужно. Спасибо – user1667474
ссылка, которую вы предоставляете, больше не работает –
Спасибо, это должно быть ссылка на последнюю версию http://search.cpan.org/~kimryan/Lingua-EN-AddressParse/ –