Вывести все номера телефонов, содержащиеся в сообщении соответсвующие форматам xx-xx-xx, xxx-xxx и xxx-xx-xx - C#

Узнай цену своей работы

Формулировка задачи:

Вывести все номера телефонов, содержащиеся в сообщении соответсвующие форматам xx-xx-xx, xxx-xxx и xxx-xx-xx Даже и не знаю как вывести их. Прошу о помощи.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
 
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            string tel1 = @"\d{3}-\d{2}-\d{2}";
            string tel2 = @"\d{3}-\d{3}";
            string tel3 = @"\d{2}-\d{2}-\d{2}";
            while (true)
            {
                    Console.WriteLine("Введите строку");
                    string strok = Console.ReadLine();
                    if (Regex.IsMatch(strok, tel1, RegexOptions.IgnoreCase))
                    {
                            Console.WriteLine("Номер 1");
                    }
                    if (Regex.IsMatch(strok, tel2, RegexOptions.IgnoreCase))
                    {
                        Console.WriteLine("Номер 2");
                    }
                    if (Regex.IsMatch(strok, tel3, RegexOptions.IgnoreCase))
                    {
                        Console.WriteLine("Номер 3");
                    }
                    else
                    {
                        Console.WriteLine("Неверный номер");
                    }
                    Console.ReadKey();
            }
        }
    }

Решение задачи: «Вывести все номера телефонов, содержащиеся в сообщении соответсвующие форматам xx-xx-xx, xxx-xxx и xxx-xx-xx»

textual
Листинг программы
using System;
using System.Linq;
using System.Text.RegularExpressions;
 
internal sealed class Program {
  static void Main() {
    String nums = @"
      123-45-6 first
      123-456  second
      12-34-56 third
      other
      123-45-67 -!sss//123
      12-34-56-78-90
      09-87-65 fourth
    ";
    
    new Regex(@"\d+(-?\d+)*").Matches(nums).Cast<Match>()
      .Select(v => v.Value)
      .Where(v => v.Count(c => c >= '0' && c <= '9') == 6)
      .ToList()
      .ForEach(v => Console.WriteLine(v));
  }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 4.1 из 5
Похожие ответы