|
55 / 55 / 16
Регистрация: 25.03.2013
Сообщений: 178
|
||||||
Задача на регулярные выражения (найти и преобразовать суммы денег и даты)03.02.2014, 23:25. Показов 4796. Ответов 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
Регулярные выражения для даты в формате дд.мм.гггг Регулярные выражения: извлечение даты и времени из строки ЧПУ. Замена строк, регулярные выражения. Как правильно использовать переменную в регулярные выражения ?
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
|
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма).
На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
|
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ *
Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам
Кирхгофа, решает её и находит:
токи, напряжения и их 1 и 2 производные при t = 0;. . .
|
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым.
Но восстановить их можно так.
Для этого понадобится консольная утилита. . .
|
|
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
|
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11
— это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
|
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11
Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
|
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
|