Tural_m Ответов: 1

Помогите мне с разбором


hello, I have a text file in the form
111.111.111.111 21/03/2017 21:30:14
111.111.111.111  21/03/2017 21:30:18
111.111.111.111 21/03/2017 21:30:25
111.111.111.111 21/03/2017 21:31:12
111.111.111.111 21/03/2017 21:31:40
111.111.111.111 21/03/2017 21:32:14
111.111.111.111   21/03/2017 21:32:18

 such as you can parse this file and get together the ip address and time instead


Что я уже пробовал:

I could parsit only on a separate

Patrice T

Попробуйте составить предложения.

Tural_m

Я пробовал такой, но так парсит только IP

использование системы;
использование системы.Коллекции.Общий;
использование системы.ИО;
использование System.Linq;
использование System.Text;
использование System.Text.RegularExpressions;
использование системы.Нарезание резьбы.Задачи;

пространство имен ConsoleApp2
{
классная программа
{
static void Main(string[] args)
{
List<string> ls = новый список<string>();
использование (StreamReader stream = new StreamReader(@"path"))
{
стр ВАР = поток.ReadToEnd();
foreach (совпадение элемента в регулярном выражении.Играм(стр @"и\D{1,3}\.\д{1,3}\.\д{1,3}\.\д{1,3}"))
{
общ. Добавить(элемент.Значение);
}
}
по каждому элементу (ВАР пункту в ЛС)
{
Приставка.WriteLine(item);
}


}
}
}

Patrice T

Воспользуйся Улучшить вопрос чтобы обновить ваш вопрос.
Чтобы каждый мог обратить внимание на эту информацию.

1 Ответов

Рейтинг:
5

OriginalGriff

Начните с работы с каждой строкой и используйте строку.Разделить, чтобы разбить его на три части IP, дата и время:

string[] parts = line.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
if (parts.Length == 3)
    {
    string IP = parts[0];
    string date = parts[1];
    string time = parts[2];
    ...
    }

Или используйте регулярное выражение для извлечения IP-адреса и даты-времени:
public static Regex regex = new Regex(
      "^(?<IP>\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3})\\s+(?<Date"+
      ">\\d\\d/\\d\\d/\\d{4})\\s+(?<Time>\\d\\d:\\d\\d:\\d\\d)",
    RegexOptions.Multiline
    | RegexOptions.CultureInvariant
    | RegexOptions.IgnorePatternWhitespace
    | RegexOptions.Compiled
    );
...
    Match m = regex.Match(line);
    if (m.Success)
        {
        string IP = m.Groups["IP"].Value;
        string date = m.Groups["Date"].Value;
        string time = m.Groups["Time"].Value;
        //...
        }

Если вы собираетесь играть с регулярными выражениями, то получите копию Экспрессо[^] - это бесплатно, и он проверяет и генерирует регулярные выражения.