Вывести на экран все адреса web-сайтов из строки с помощью регулярного выражения - C#
Формулировка задачи:
Дана строка, в которой содержится осмысленное текстовое сообщение. Слова
сообщения разделяются пробелами и знаками препинания.Выведите на экран все адреса web-сайтов, содержащиеся в сообщении.
Для ввода нескольких строк можно использовать следующий фрагмент
программы
// Ввод данных
string text = ""; // Исходный текст из нескольких строк
Console.WriteLine("Введите строки. Пустая строка - конец ввода!");
string st = Console.ReadLine(); // st - текущая строка text
while (st != "") // Пока st не пуста
{
text += "\n" + st;
st = Console.ReadLine();
}Решение задачи: «Вывести на экран все адреса web-сайтов из строки с помощью регулярного выражения»
textual
Листинг программы
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Text.RegularExpressions;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// Ввод данных
string text = ""; // Исходный текст из нескольких строк
Console.WriteLine("Введите строки. Пустая строка - конец ввода!");
string st = Console.ReadLine(); // st - текущая строка text
while (st != "") // Пока st не пуста
{
text += "\n" + st;
st = Console.ReadLine();
}
string pattern = @"((https?|ftp)\:\/\/)?([a-z0-9]{1})((\.[a-z0-9-])|([a-z0-9-]))*\.([a-z]{2,6})(\/?)";
Regex newReg = new Regex(pattern);
MatchCollection matches = newReg.Matches(text);
foreach(Match mat in matches)
{
Console.WriteLine("Значение найденного объекта {0}",mat.Value);
}
Console.WriteLine("Число найденных совпадений{0}",matches.Count);
Console.ReadLine();
}
}
}