2009-05-22 2 views
2

Эй, ребята. Я ищу некоторые регулярные выражения, которые помогут захватить уличные адреса и номера телефонов из текста свободной формы (a la Gmail).Вызов международных уличных адресов/телефонных номеров из текста свободной формы

Учитывая текст: "John, I went to the store today, and it was awesome! Did you hear that they moved to 500 Green St.? ... Give me a call at +14252425424 when you get a chance."

я хотел бы быть в состоянии вытащить:

500 Green St. (распознается как адрес)

+14252425424 (распознается как номер телефона)

Что делает эту проблему проще, так это то, что меня не волнует разбор текста, который вытягивается. То есть мне все равно, что Green - это название дороги или что 425 - код города. Я просто хочу захватить строки, которые «похожи» на адреса или номера телефонов.

К сожалению, это необходимо для работы на международном уровне, насколько это возможно.

У кого есть указания? Благодаря!

+1

Обязательно: http://xkcd.com/208/ –

ответ

1

Телефонные номера, если у вас есть список всех кодов стран и форматов номеров, просто, уличные адреса Я понятия не имею, единственный совет, который я могу вам дать, - это проверить каждый набор слов @ addressdoctor.com

0

Посмотрите на Chapter 7 of Dive Into Python. Он касается как телефонных номеров, так и уличных адресов. Я считаю, что вы можете использовать это как отправную точку. Международная часть кажется жесткой. Я предлагаю вам создать первый черновик, попробовать его на нескольких локалях, повторить и улучшить.

+0

А, но я думаю, эта проблема уже решена. Знаете ли вы о каких-либо уже существующих регулярных выражениях, которые я могу использовать? Спасибо. – spitzanator

+0

Ну, вы можете проверить http://regexlib.com/. Это # 1 источник регулярных выражений для проблем, которые не должны решаться с помощью регулярных выражений. ;) –

+0

Алан, это выглядит как отличный ресурс, спасибо. Беглый поиск дал мне несколько международных номеров регулярных выражений; Однако нет международных адресных адресов. Я все еще считаю, что это сложно. –

1

Вы можете дать RecogniContact (->address-parser.com), он распознает как почтовые адреса, так и номера телефонов.