Привет, Тостер.
У меня небольшой вопрос к тем людям, которы разбираются в regexp(поправьте, если есть решение и без регулярных выражений).
У меня есть много строк вида:
133 NE 2nd Ave 1912, Miami, FL 33132
24 NW 102nd Street, Miami, FL 33150
15630 SW 109 Avenue, Miami, FL 33157
PO Box 2991, Miami, FL 33269
16469 Ne 30th Ave, Miami, FL 33160
80 SW 8th Street Suite 2000, Miami, FL 33130
Miami, FL 33176
2732 South West 131st Pl, Miami, FL 33175-7151
Мне нужно отдельно получить:
- улицу и номер дома
- город
- штат
- почтовый индекс
Я не прошу делать это за меня! (Это специально для модераторов!)
Я прошу указать мне на готовые(?) решения, если они есть или услышать идеи и предложения как это можна лучше реализовать.
Гугл выдает много вопросов на стаке, где в ответ сыпят вот такими регулярками:
\d{1,4}( \w+){1,5}, (.*), ( \w+){1,5}, (AZ|CA|CO|NH), [0-9]{5}(-[0-9]{4})?
/\s+(\d{2,5}\s+)(?![a|p]m\b)(([a-zA-Z|\s+]{1,5}){1,2})?([\s|\,|.]+)?(([a-zA-Z|\s+]{1,30}){1,4})(court|ct|street|st|drive|dr|lane|ln|road|rd|blvd)([\s|\,|.|\;]+)?(([a-zA-Z|\s+]{1,30}){1,2})([\s|\,|.]+)?\b(AK|AL|AR|AZ|CA|CO|CT|DC|DE|FL|GA|GU|HI|IA|ID|IL|IN|KS|KY|LA|MA|MD|ME|MI|MN|MO|MS|MT|NC|ND|NE|NH|NJ|NM|NV|NY|OH|OK|OR|PA|RI|SC|SD|TN|TX|UT|VA|VI|VT|WA|WI|WV|WY)([\s|\,|.]+)?(\s+\d{5})?([\s|\,|.]+)/i
/^[0-9]* (.*), (.*) [a-zA-Z]{2} [0-9]{5}(-[0-9]{4})?$/
Но это все не то, ведь мне не нужна целая запись, а нужно разбить её.
Была еще идея делать split по ",", но иногда нет записи с улицей, а только город и штат.
Спасибо за уделенное время, жду Ваших предложений.