|
55 / 55 / 16
Регистрация: 25.03.2013
Сообщений: 178
|
||||||
Задача на регулярные выражения (найти и преобразовать суммы денег и даты)03.02.2014, 23:25. Показов 4819. Ответов 3
Метки нет (Все метки)
Текстовый файл in.txt содержит текст на английском языке, в котором присутствуют:
– корректные даты в формате деньXмесяцXгод, где день и месяц – одна или две цифры, год – две или четыре цифры. X – разделитель: точка, прямой слеш или минус (одинаковый в каждой дате, но может быть разным в разных датах). – корректные денежные суммы в формате сумма belarusian roubles или сумма blr, где cумма – число, разбитое на разряды произвольным числом пробелов (например, 32 671 000 blr). Программа должна сделать следующее: 1.Преобразовать даты в тексте в американский формат Month day, year (например, October 3, 2010). 2.Убрать пробелы между разрядами в суммах (например, 32671000 blr). Результат записать в файл out.txt. Пример
Пример in.txt I was 2 300 530 belarusian roubles and 2 351 dollars 12/9/2010. After shopping 15.09.10 I was left with 1 700 253 blr and 2 000$. After shopping 16.09.10 I was left with 1 7 00 2 500 blr. 232 500 blr and 10 blr. Результат out.txt I was 2300530 belarusian roubles and 2 351 dollars September 12, 2010. After shopping September 15, 2010 I was left with 1700253 blr and 2 000$. After shopping September 16, 2010 I was left with 1 7 00 2500 blr. 232500 blr and 10 blr. Замечания к задаче от препода
Алгоритм анализа и редактирования текста исходного файла состоит из двух циклов. Сначала строка прогоняется через первое регулярное выражение (даты), а затем через второе (деньги). Структура циклов одинаковая, и код отличается лишь отдельными строками. Хорошее решение (в стиле ООП) предполагает создание абстрактного класса, в котором есть универсальный метод с реализацией цикла для поиска и замены в переданной строке по регулярному выражению. Детали обработки, уникальные для регулярного выражения, должны быть вынесены в подклассы. Мой код
Вопросы: Вывод осуществлял в тот же файл, вопрос правильно ли? Про циклы в замечаниях не понял, думаю они будут избыточны или просто нужно было считывать файл построчно, мол так меньше памяти жрёт? И про класс вместе с ООП тоже не догнал, может кто пояснит как здесь можно применить, а то меня слегка тупит. Ну и главное правильно ли я составил регулярное выражение, вроде протестил - работает для всех вариантов.
0
|
||||||
| 03.02.2014, 23:25 | |
|
Ответы с готовыми решениями:
3
Регулярные выражения. Найти в тексте даты вида дд.мм.гггг Правильность введенной даты (регулярные выражения) Регулярные выражения для проверки даты |
|
842 / 480 / 58
Регистрация: 18.09.2012
Сообщений: 1,688
|
|
| 04.02.2014, 11:23 | |
|
Zarex, ну конечно регулярки это хорошо, но можно было тут почитай, неплохо написано про управления с datetime или тут, дальше. Конечно регулярками убирать пробелы это не самое лучшее решение, если честно, можно проще гораздо использую строковые функции. Или вам принципиальны регулярки?
1
|
|
|
55 / 55 / 16
Регистрация: 25.03.2013
Сообщений: 178
|
|
| 04.02.2014, 12:47 [ТС] | |
|
Wolkodav, спасибо за линк, про time знал, с модулем datetime не сталкивался. А что касается рег экспов, то по заданию нужно использовать именно их, поэтому так и делал. Честно говоря у меня это первое использование РВ.
0
|
|
|
842 / 480 / 58
Регистрация: 18.09.2012
Сообщений: 1,688
|
|
| 04.02.2014, 21:28 | |
|
Zarex, А про ООП, то будет надуманно немного, если честно.. Но сделать класс валюта или рубли, и сделать класс американское время какое-нибудь, сделать еще один класс, типо фабрики, туда скармливаешь свой текст, он его делит на дату и деньги, отдаёт дату классу американское время, а деньги классу валюта или рубли и на выходе получаешь готовый объект)
0
|
|
| 04.02.2014, 21:28 | |
|
Помогаю со студенческими работами здесь
4
Регулярные выражения для даты в формате дд.мм.гггг Регулярные выражения: извлечение даты и времени из строки ЧПУ. Замена строк, регулярные выражения. Как правильно использовать переменную в регулярные выражения ?
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает
монорепозиторий в котором находятся все исходники.
При создании нового решения, мы просто добавляем нужные проекты
и имеем. . .
|
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение:
В этой книге («Подход, основанный на вариантах использования») Ивар утверждает,
что архитектура программного обеспечения — это
структуры,. . .
|
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога
Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
|
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip
На первой гифке отладочные линии отключены, а на второй включены:. . .
|
|
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем.
. . .
|
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
|
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
|
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
|