Page 1 of 1

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

Posted: Thu Jun 20, 2013 6:55 pm
by neomag06
Проблема такая, есть файл, в нем текст и цифры (номера телефонов), нужно сделать так, чтобы остались (отбразились) только телефоны.
Помогите реализовать, есть ли такая функция в программе AkelPad?
Заранее Благодарю за ответы. :)

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

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

Posted: Thu Jun 20, 2013 9:45 pm
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.: " заменить на "пусто" и хвосты подчистить).

Posted: Thu Jun 20, 2013 10:03 pm
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

Posted: Thu Jun 20, 2013 11:17 pm
by neomag06
opk44
KDJ
Спасибо за помощь!
То что меняется порядок строк - мне всеравно, главное чтобы номера телефонов сохранились как есть.
Почищу файлы, попробую этими формулами отсортировать, отпишусь в любом случае.