Вывести все номера телефонов, содержащиеся в сообщении соответсвующие форматам 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));
}
}