У меня есть строка в форме
var dummyString = $@"SIGNED APPLICATION AND AFFIDAVIT REQUIRED LOCATION: BLK 99, LOT 9 AND BLK 100 LOT 9, 10, 11, 12 & 13 RT 38 EAST HAINESPORT, NJ BASED ON: VACANT LAND";
Что я хотел бы сделать, это извлечь местоположение / адрес из этой строки. Я легко могу найти индекс LOCATION: , но не могу придумать эффективного решения для индекса, где я должен завершить строку. Самый простой вариант - перебрать список и найти индекс кода состояния, но это не очень эффективный способ его обработки.
Я решил, что решение этой проблемы - использовать список кодов штатов США, а затем найти индекс первого совпадения любого кода штата после индекса подстроки LOCATION: с пробелом, чтобы я мог найти полный код состояния и его индекс.
public const List<string> USStateCodes = new List<string> { "AL", "AK", "AS", "AZ", "AR", "CA", "CO", "CT", "DE", "DC", "FM", "FL", "GA", "GU", "HI", "ID", "IL", "IN", "IA", "KS", "KY", "LA", "ME", "MH", "MD", "MA", "MI", "MN", "MS", "MO", "MT", "NE", "NV", "NH", "NJ", "NM", "NY", "NC", "ND", "MP", "OH", "OK", "OR", "PW", "PA", "PR", "RI", "SC", "SD", "TN", "TX", "UT", "VT", "VI", "VA", "WA", "WV", "WI", "WY" };
Есть идеи о том, как действовать дальше?
Вывод, который я хочу получить:
BLK 99, LOT 9 И BLK 100 LOT 9, 10, 11, 12 и 13 RT 38 EAST HAINESPORT, Нью-Джерси
Указанная здесь проблема является частью более крупной логики c, где я использую регулярное выражение, чтобы найти индекс почтового индекса (5 цифр) как терминатор, но в некоторых случаях почтовый индекс может не присутствовать в адресе (ошибка пользователя). Я все еще должен быть в состоянии извлечь адрес.