Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Нужна помощь распарсить имя файла от атс / 7 сообщений из 7, страница 1 из 1
14.08.2014, 09:41
    #38719979
Andrey1306
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна помощь распарсить имя файла от атс
Добрый день есть куча файлов примерно такого имени


19-42-49 [A 4457601559902] 'DN_9404~' (44,-0,0,0) .wav
20-47-13 [P 9160] 'DN_9404~' (44,-0,0,0) .wav (внутренний номер)
16-41-14 [A 6789287109902] 'DN_9404~' (44,-0,0,0) .wav


Нужно выцепить из квадратных скобок номер телефона и код цифры 9902 не нужны

пока у меня получается в несколько этапов

1. с помощью реплайс убираю 9902.
2. (?<=\[..)(\d{5,})(?=\]) получаю цифры 678928710 для 3 файла

ну дальше работа со строками последние 7 цифр номер телефона. все что осталось в наче 2(иногда атс не пишет 0 в код телефона) или 3 цифры код

то есть для случаев должно быть
044 5760155
9160
067 8928710


Есть ли более оптимальный спосбо получить все за 1 итерацию ? Спасибо
...
Рейтинг: 0 / 0
14.08.2014, 11:22
    #38720057
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна помощь распарсить имя файла от атс
Могу предложить такой вариант:

\[[A-Z] (\d\d)(\d\d)?(\d{5})?(9902)?\]

Если совпадений два, то это 91+60 = 9160
Если совпадений четыре, то первое это код, второе+третье это номер телефона, четвертое игнорируем.
...
Рейтинг: 0 / 0
14.08.2014, 11:28
    #38720061
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна помощь распарсить имя файла от атс
А если код не 044, а 444, то строка соответственно будет [A 44457601559902]?
Если так, то \[[A-Z] (\d)?(\d\d)(\d\d)?(\d{5})?(9902)?\]
Соответственно код будет из 1+2 совпадений, номер из 3+4.
...
Рейтинг: 0 / 0
14.08.2014, 12:17
    #38720126
Andrey1306
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна помощь распарсить имя файла от атс
Antonariy,

Код телефона всегда трехзначный и начинается на 0 (по крайней мере в Украине)


попробовал ваш шаблон тут http://regexstorm.net/tester не то ). Но все равно спасибо за участие
...
Рейтинг: 0 / 0
14.08.2014, 13:51
    #38720253
Andrey1306
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна помощь распарсить имя файла от атс
(\d{5,})[^(9902\]]

такой шаблон возвращает уже нужный код с телефоном

из 08-02-39 [A 6338403449902] 'DN_9405~' (44,-0,0,0) .wav

получаем 633840344

осталось на досуге выйти на 063 3840344
...
Рейтинг: 0 / 0
14.08.2014, 15:22
    #38720375
carrotik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна помощь распарсить имя файла от атс
Andrey1306Antonariy,

Код телефона всегда трехзначный и начинается на 0 (по крайней мере в Украине)


... в Никополь или Вишневое не пробовали звонить? .. :)
...
Рейтинг: 0 / 0
14.08.2014, 17:21
    #38720604
Andrey1306
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна помощь распарсить имя файла от атс
carrotik,

да, протупил ......, в базе в основном из стационарных только киев
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Нужна помощь распарсить имя файла от атс / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]