Loading...
radybt avatar radybt 9 Точки

[Programming Fundamentals] 2. Match Phone Number

Задачата е от регекс лаба. Като гледах днешната подготовка за изпита супер адванст регекс ще трябва за решението на някой задачи, не знам защо така всичкото ни го изсипаха баш накрая преди изпита на фона на останалия материал... се тая, сега закърпвам познанията по регекса и ще съм доволен ако дадете някакви решения на тая задача(само регекс), защото изгубих 1 година и още не мога да разбера как да направя така че +359-2 222 2222 да бъде невалидно. Аз съм написал, че може да има тире или спейс но не знам как да направя така че ако има и от двете да е невалидно. 

Тагове:
0
Programming Fundamentals 07/07/2017 19:51:43
icowwww avatar icowwww 2791 Точки

В тая задача не мога да видя какво се иска да влиза като вход и какво да излиза като изход. Не знам какво ще я правиш ама ми се струва, че регекс като тоя може да свърши работа 

( ?\+359 2 \d{3} \d{4}\b)|(\+ ?359-2-\d{3}-\d{4}\b)

 

Едит: видях в judge излизат на един ред и трябва да се изкарат всички, които мачват патерна: https://pastebin.com/AqqnjL6x
 

1
07/07/2017 02:31:18
RIFFRAFF avatar RIFFRAFF 7 Точки

До този момент единственият начин ,който аз намерих това да стане е чрез ползване на предходна група.

В случая ако това е регекс-а : "\+([359]+)([-| ])2(\2)(\d{3})(\2)(\d{4})\b";

Взимаш втора група ,която търси тиренце или спейс - "([-| ])" и преизполваш нейният резултат ,където ти е нужно ,за да си сигурен, че са еднакви - (\2) .

Загадка - решение : https://pastebin.com/Ph3zxuKL

0
24/06/2018 14:25:44
AlexPri avatar AlexPri 4 Точки

This blog post is about programming fundamentals. Programming fundamentals is a step by step procedure of programming which is very necessary for the proper working of websites. You should try cNumber for 01234 numbers for a better experience and keep sharing such a good post in the future.

0
johanni avatar johanni 5 Точки

Ето една стотачка от мене:

 

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

namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            string pattern = @"\+([359]+)([- ])2(\2)(\d{3})(\2)(\d{4})\b";
            string phoneInputs = Console.ReadLine();
            Regex phonePatters = new Regex(pattern);
            var match = phonePatters.Matches(phoneInputs);

            var matches = phonePatters.Matches(phoneInputs);

            Console.WriteLine(string.Join(", ", matches));
        }
    }
}

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