Loading...
alexlb avatar alexlb 0 Точки

[Programming Fundamentals] Lab: Regular Expressions (RegEx) / 2. Match Phone Number

Не мога да разбера, защо джъджа ми дава 0 точки, след като във VS ми връща резултата?

 

Моля ви за помоще къде бъркам.

Това е линка към кода: https://pastebin.com/tW4xLedS

Благодаря

Тагове:
0
Programming Fundamentals 05/07/2017 17:51:22
NikolayPopov avatar NikolayPopov 253 Точки

Нулевите тестове минават ли?

0
alexlb avatar alexlb 0 Точки

само те минават

Zero test #1 (Correct answer)

The zero tests are not included in the final result.

Time used: 0.015 s

Memory used: 8.70 MB

0
DanielTotev avatar DanielTotev 25 Точки

Здравей, виж моето решение https://pastebin.com/2SReQkJK .

-2
03/07/2017 22:12:49
alexlb avatar alexlb 0 Точки

var pattern = @"\+359([ -])2\1\d{3}\1\d{4}\b";

Да попитам: с 1 показваш, че където е сложено трябва да се използва [ -] нали? Но как му казваш в целия номер да са само спейс или само -? 

0
03/07/2017 22:30:10
DanielTotev avatar DanielTotev 25 Точки

Това нещо се нарича backreference и \1 се заменя със символът от първата група , който е бил използван. Можеш да прочетеш повече за това тук: http://www.regular-expressions.info/backref.html . Надявам се да съм бил полезен.

0
alexlb avatar alexlb 0 Точки

Благодаря

0
NikolayPopov avatar NikolayPopov 253 Точки

Ето моето решение:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;


namespace AdvansedProblem1
{
    public class Program
    {
        public static void Main()
        {
            string pattern = @"^\+359([\s|-])2\1[0-9]{3}\1[0-9]{4}$";

            string input = Console.ReadLine();
            while (input != "end")
            {
                Regex regex = new Regex(pattern);

                if (regex.IsMatch(input))
                {
                    Console.WriteLine(input);
                }
                input = Console.ReadLine();
            }
        }
    }
}
 

Ако е същата задача, номерата не са на един и същи ред, а до получаване на end, моя регекс е малко по-запрелет но можеш да свършиш същото със два регекса както ти си почнал.

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.