Я пишу программу, которая сбрасывает сообщения в блогах с нескольких веб-сайтов. Я пытаюсь извлечь их австралийские форматированные телефонные номера из свободного текста. Это оказалось довольно сложным.Извлечение телефонных номеров из свободного текста
Вот несколько построенных в блоге разместить примеры:
Пример 1:.
«Здравствуйте, меня зовут Алисия, я 32 и жили в Брисбене в течение последних 40 лет я 6 «высокий и подвижный бегун. С 2004 года я работаю 2-3 раза в неделю. Не стесняйтесь позвонить +61 (04) 654 456 или попробовать другой мой номер 0434 43 22 34.»
От этого блога мне нужно извлечь "04654456" и "0434432234"
Пример 2:
«Я Джо, а также люблю бегать. Стоит 7 футов в высоту и идет с ним с 2004 года. Для обучения советуйте по телефону 043 572-6087 или (02) 1232 23 56. "
От этого блога мне нужно извлечь "0435726087 и "0212322356"
Пример 3:.
" Меня зовут Pricilla и я люблю работать. Вы можете связаться со мной по телефону 0 434 45 45 12, но не звоните до 12:00 вечера (я получил клиентов до 10-11-ий). Мой номер лицензии - 4335TE33, и я управляю Ford Bronco 2004 года с новыми 6-дюймовыми шинами. Я могу проехать 28 км, но обычно требуется перерыв каждые 3 или 4 км. Позвоните мне сегодня (04) 3 445 4512 «
Из этого сообщения в блоге мне нужно извлечь «0434454512».
я придумал довольно сложную систему, что для каждой записи в блоге делает следующее:
1) Отбросьте все не числовые символы, триммеры и удалить двойные пробелы
2) Преобразует строку массив. Итак, теперь у нас есть только массив чисел, например [0, 434, 45, 45, 12, 435, '3', '4', '04', '34', '832', '234]
3) Проведите через массив чисел и примените правила, чтобы собрать их вместе. Этот код раздувается и не очень красив.
4) Подтвердить результат, используя шаблон RegExp для австралийских номеров мобильных и наземных линий
Очевидно, я попытался с помощью регулярных выражений, но они не большое время в этом случае.
Моя система работает большую часть времени, но код не так уж и мал.
Как вы бы на это нанести удар?
Показать коды, которые вы пробовали. – Raptor