|
0 / 0 / 0
Регистрация: 28.08.2012
Сообщений: 3
|
|
Делаем регулярные выражения28.08.2012, 02:12. Показов 1205. Ответов 7
Метки нет (Все метки)
Приветствую.
Свою молодость провел бурно, на программирование времени не осталось. Печально. Прошу помощи: Есть текстовый файл с записями вида: 901 1800000 1899999 901 7000000 7299999 Скрывать не буду - это телефонные коды, разбитые по регионам и принадлежащие тому или иному оператору связи. Есть задача - привести все это к виду "регулярного выражения" (надеюсь все знают что это такое?). Т.е. программка читает файлик, сравнивает 2 и 3 столбцы и на выходе выдает что-то вроде этого (комментарии как пояснение): 901 1800000 1899999 ^90118\d{5}$ //первые 5 цифр статичные, остальные 5 - любые (\d{5}). 901 7000000 7299999 ^9017[0-2]\d{5}$ //4 начальных цифры статичные, 5 цифра - 0 или 1 или 2, остальные 5 цифр - любые(\d{5}). Думаю задача довольно интересная для тех кто учится писать на C, C++ и т.п. (в памяти всплывают слова лектора о том, что работа со строками и подстроками - важный аспект программирования).
0
|
|
| 28.08.2012, 02:12 | |
|
Ответы с готовыми решениями:
7
Регулярные выражения
|
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|
| 28.08.2012, 03:12 | |
|
Labus, Ну если простые регексы - то легко. А если сложные... Ну как бэ каждое выражение можно выразить разными регексами по большому счету. А чего самому-то не сделать?
0
|
|
|
0 / 0 / 0
Регистрация: 28.08.2012
Сообщений: 3
|
||
| 28.08.2012, 12:38 [ТС] | ||
|
программа должна составлять регулярное выражение на основе файла с номерами: Т.е. из записи вида 901 1800000 1899999 должна получать на выходе ^90118\d{5}$ ^ - начало строки $ - конец строки \d{n} - любые n целых цифр ( \d{5} = последовательность из 5 любых целых от 0 до 9 цифр). [0-2] - любая цифра из набора 0 1 2.
0
|
||
|
|
||||||
| 28.08.2012, 12:54 | ||||||
|
префикс 901 у обоих номеров одинаковый?
0
|
||||||
|
~ Эврика! ~
1258 / 1007 / 74
Регистрация: 24.07.2012
Сообщений: 2,002
|
|
| 28.08.2012, 13:56 | |
|
Окей, контрпример:
номера, начинающиеся на 901 700, могут дальше состоять только из чисел до 120000; начинающиеся на 901 701 — до 140000; и т. п. Простыми регэкспами все случаи не покроешь.
0
|
|
|
0 / 0 / 0
Регистрация: 28.08.2012
Сообщений: 3
|
||
| 28.08.2012, 18:07 [ТС] | ||
|
Я нигде не указывал ограничения в использовании регэкспов. Все что было выше - всего лишь пример. Строки всегда одинаковой длины. 901 1800000 1899999 901 7000000 7299999 Что мешает сравнивать посимвольно и делать регэкспы для каждой цифры номера? Например если сравнить в 1 строке последние 5 цифр 2 и 3 столбца - видно, что это могут быть любые цифры в промежутке от 0 до 9 и их можно заменить на \d{5}, а во 2 строке 70 и 72 отличаются только 2 цифрой. Такие вещи заменять [0-2], оставшиеся 5 заменяем на \d{5}... Хотя, наверное это все-таки сложно.
0
|
||
| 28.08.2012, 18:07 | |
|
Помогаю со студенческими работами здесь
8
Регулярные выражения в g++ Регулярные выражения Регулярные выражения С++ и регулярные выражения Регулярные выражения Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Символьное дифференцирование
igorrr37 13.02.2026
/ *
Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет
значение производной при заданном х
Логарифм записывается как: (x-2)log(x^2+2) -. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога
Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
|
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
|