Как из текста вытянуть только цифры (номера)

Russian main discussion
Post Reply
  • Author
  • Message
Offline
Posts: 2
Joined: Wed Jun 19, 2013 10:28 pm

Как из текста вытянуть только цифры (номера)

Post by neomag06 »

Проблема такая, есть файл, в нем текст и цифры (номера телефонов), нужно сделать так, чтобы остались (отбразились) только телефоны.
Помогите реализовать, есть ли такая функция в программе AkelPad?
Заранее Благодарю за ответы. :)

Пример файла исходного: http://sms.ho.ua/ish.txt
Пример файла, как должно получиться: http://sms.ho.ua/itog.txt

Offline
Posts: 874
Joined: Sat Jan 16, 2010 2:03 pm

Re: Как из текста вытянуть только цифры (номера)

Post by opk44 »

1. Начните с того, что просто отсортируйте файл. Может этого уже и будет достаточно. Требуется плагин Format::LineSortStrAsc. Недостаток - меняется исходный порядок строк.
2. Чуть более "затейливый" вариант (с плагином Scripts) - использовать скрипт "Фильтр строк с регулярными выражениями" (LinesFilter.js)
В поле "Строка содержит" написать что-то вроде этого:
((\d{2}-\d{2}-\d{2})|(\d \(\d{2}\) \d{3}-\d{2}-\d{2}))
опции: "Регулярные выражения" и "Оставить строки".
В этом случае исходный порядок строк сохранится.
Недостаток - необходимо четко определить возможные шаблоны номеров. В примере "477-333" будет проигнорирован, т.к. не совпадает с шаблоном.
В обоих случаях придется подчистить некоторый оставшийся мусор (начала строк "Oae.: " заменить на "пусто" и хвосты подчистить).

KDJ
Offline
Posts: 1949
Joined: Sat Mar 06, 2010 7:40 pm
Location: Poland

Post by KDJ »

neomag06
You can do this without a script.
"Replace" dialog with regular expressions:
What: ^.*(((0 \(\d\d\) )?\d{2,}-\d{2,}(-\d{2,})?).*)$|^.+
With: \1

Offline
Posts: 2
Joined: Wed Jun 19, 2013 10:28 pm

Post by neomag06 »

opk44
KDJ
Спасибо за помощь!
То что меняется порядок строк - мне всеравно, главное чтобы номера телефонов сохранились как есть.
Почищу файлы, попробую этими формулами отсортировать, отпишусь в любом случае.
Post Reply