Софтуерно Инженерство
Loading...
+ Нов въпрос
Ordnata avatar Ordnata 6 Точки

04. Match Dates / Regular Expressions (RegEx) - Lab

Колеги, пропуснах regex'a тази седмица, някой може ли да помогне. Нещо групите не сработват, а и в  regexr  не покрива нищо този израз. Това е написано в word doc на лаба но нещо може би пропускам.

https://judge.softuni.bg/Contests/Practice/Index/452#3

https://pastebin.com/S06h27NF

Тагове:
0
Programming Fundamentals
R.Novachkov avatar R.Novachkov 7 Точки

Колега проблема е, че RegEx-а който имаме нещо не работи правилно. Аз махнах именуванията, а на групите във foreach-a, в кавичките написах 1, 3 и 4. Работи и минава в джуджето.

0
01/07/2017 01:50:59
Ordnata avatar Ordnata 6 Точки

Всъщност то си пише в условието, че именованите не се номерират и от втора става първа и работи.

1
Boris.stavrev92 avatar Boris.stavrev92 38 Точки

  var pattern = @"\b(?<day>\d{2})([.\/-])(?<month>[A-Z][a-z]{2})\1(?<year>\d{4})\b";

            // var pattern = @"\b(?<day>\d{2})([.\/-])(?<month>[A-Z][a-z]{2})    \2 /* трябва да е \1 a не \2 */    (?<year>\d{4})\b";

            // Since RegEx works differently across different languages, before we continue
            //, we’re going to set our backreference from \2 to \1.
            //This is because C# backreferences don’t count named capture groups for backreferences.
            //So, change it before we continue.

            string datesString = Console.ReadLine();

            MatchCollection dates = Regex.Matches(datesString, pattern);

            foreach (Match date in dates)
            {
                string day = date.Groups["day"].Value;
                string month = date.Groups["month"].Value;
                string year = date.Groups["year"].Value;

                Console.WriteLine($"Day: {day}, Month: {month}, Year: {year}");
            }

 

и аз не прочетох хубаво условието и ... се чудих дълго защо не работи 

ето ти кода 

Извода е че backreference търси група с име 2 ... а то няма такава група ... а група 1 става ([.\/-])

0
31/10/2017 08:33:11
RIFFRAFF avatar RIFFRAFF 7 Точки

Тези задачи с Regex-a се оказват много приятни ! Явно все пак трябва да се чете маалко по-внимателно .. и аз забозих там на имената на групите .

Все пак това е вариант на решението на загадката : https://pastebin.com/e0w2jJv4

0