Удалить из текста определенные IP-адреса - C#

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

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

Дана строка, в которой содержится осмысленное текстовое сообщение. Слова сообщения разделяются пробелами и знаками препинания.В сообщении могут содержаться IP-адреса компьютеров в формате d.d.d.d, где d – целое число из диапазона от 0 до 255. Удалить из сообщения IP-адреса, в которых последнее число d начинается с заданной цифры (данная цифра вводится с клавиатуры). Для ввода нескольких строк можно использовать следующий фрагмент программы
// Ввод данных
string text = ""; // Исходный текст из нескольких строк
Console.WriteLine("Введите строки. Пустая строка - конец ввода!");
string st = Console.ReadLine(); // st - текущая строка text
while (st != "") // Пока st не пуста
{
text += "\n" + st;
st = Console.ReadLine();
}

Решение задачи: «Удалить из текста определенные IP-адреса»

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();
            }
 
            int d = -1;
 
            while(d < 1 || d > 9)
            {
                Console.Write("Введите цифру от 1 до 9: ");
                d = Convert.ToInt32(Console.ReadLine());
            }
 
            string endPattern = "";
            if(d == 1)
                endPattern = @"(1[0-9]{2}|1[0-9]|1)";
            else if (d == 2)
                endPattern = @"(25[0-5]|2[0-4][0-9]|2[0-9]|2)"; 
            else
                endPattern = d.ToString();
 
            string pattern = @"(25[0-5]|2[0-4][0-9]|[0-1][0-9]{2}|[0-9]{2}|[0-9])\.(25[0-5]|2[0-4][0-9]|[0-1][0-9]{2}|[0-9]{2}|[0-9])\.(25[0-5]|2[0-4][0-9]|[0-1][0-9]{2}|[0-9]{2}|[0-9])\." + endPattern;
            Regex newReg = new Regex(pattern);
            string newText = newReg.Replace(text, "");
            Console.WriteLine("Новый текст: " + newText);
 
            Console.ReadLine();
        }
    }
}

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


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

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

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