Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
0 / 0 / 0
Регистрация: 29.12.2018
Сообщений: 5
1

Проблема с регулярными выражениями

07.06.2020, 00:27. Просмотров 210. Ответов 2
Метки нет (Все метки)


Доброго времени суток:

На лабораторной работе получил задание: В сообщении может содержаться время в формате чч:мм:сс.
В заданном формате чч - целое число из диапазона от 00 до 24, мм и сс - целые числа из диапазона от 00 до 60
(если какая-то часть формата нарушена, то данная подстрока в качестве даты не рассматривается).
Преобразуйте каждое время к формату чч:мм, применив правило округления до целого числа минут.

Написал код:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
using System;
using System.Text.RegularExpressions;
 
namespace ConsoleApplication181
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Введите строку, содержащую время в формате чч:мм:сс : ");
            var str = Console.ReadLine();
            
            Regex pattern_f = new Regex(@"(:\d\d\d){2}");
            Match format = pattern_f.Match(str);
            if (!format.Success)
            { goto Finish; }
 
            var pattern = "(?<hour>0[0-9]|1[0-9]|2[0-3]):(?<min>[0-5][0-9]):(?<sec>[0-5][0-9])";
            
            str = Regex.Replace(str, pattern, (m) =>
            {
                var ts = TimeSpan.Parse(m.Value);
 
                if (ts.Hours > 24 || ts.Minutes > 59 || ts.Seconds > 60)
                    { Console.WriteLine("Неверный формат ввода"); }
 
                if (ts.Seconds >= 30 && ts.Seconds < 60)
                    ts = ts.Add(new TimeSpan(0, 1, 0));
 
                return ts.ToString(@"hh\:mm"); 
 
            });
 
            Console.WriteLine("Введенная строка с округлением времени:\n");
            Console.WriteLine(str);
 
            Finish:
                Console.WriteLine("Неверный формат ввода времени.");
            
            Console.ReadKey();
        }
    }
}
Но он не работает. Все время выходит текст "Неверный формат ввода данных".
Подскажите пожалуйста, в чем может быть проблема?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.06.2020, 00:27
Ответы с готовыми решениями:

Задание с регулярными выражениями.
В задании пользователь вводит слова через пробел и те слова в которых Есть в середине(не первая и...

Ошибка с регулярными выражениями
Нужно вывести значение, но почему-то ничего не выводится и ошибок компилятор не дает :( ...

Парсинг регулярными выражениями
Здравствуйте, не могу написать программу, у меня вот такая ошибка выходит:Форматы URI не...

Помощь с регулярными выражениями
string pattern = @&quot;\s* (W5)\s(R3)\s(R3)\s(I)\d(R5)\s(I)\d&quot;; string input = &quot; W5 R3 R3...

2
Жесток & Наивен
477 / 183 / 90
Регистрация: 02.02.2017
Сообщений: 425
07.06.2020, 08:42 2
Есть всякие тестеры регулярных выражений например "Этот.
Ваше первое регулярное выражение не подходит. Попробуйте например это (\:?\d){2}
Но он суда тоже зайдет.
Цитата Сообщение от Mad Lawyer Посмотреть сообщение
Console.WriteLine("Неверный формат ввода времени.");
1
2785 / 2015 / 1010
Регистрация: 14.08.2016
Сообщений: 6,909
07.06.2020, 15:25 3
C#
1
@"\b\d{2}:\d{2}:\d{2}\b"
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.06.2020, 15:25

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Работа с регулярными выражениями
Привет всем. Имеются куча сотен ссылок с таким шаблоном ...

Распарсить html регулярными выражениями
Сломал себе всю голову. Причина в том что с регулярными выражениями до сегодня вообще не...

Вырезка между регулярными выражениями
Добрый день, есть строка , необходимо в этой строке вырезать информацию между двумя регулярными...

Парсинг html регулярными выражениями
Хочу пропарсить html документом регулярками. Вот документ : ...

Создать класс для работы с регулярными выражениями
В колледже дали задание: Создать класс для работы с регулярными выражениями. Разработать...

Работа с регулярными выражениями для арифметических выражений
Вот задание: Дана строка, содержащая текст и арифметические выражения вида a ® b, где ® — один из...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.