Member 13610574 Ответов: 2

Получить подстроку из строки


всем привет,

Пожалуйста, простите меня, я новичок в C#.

Мне было интересно, может ли кто-нибудь указать мне правильное направление (логически)
можно получить весь символ между двумя точками.

ie - у меня есть файл журнала (txt-файл, созданный внешним приложением)

3/5/2018 12:00 = Critical = xF"CAPTURE BETWEEN HERE"


Я только пытаюсь захватить и сохранить "захват Между здесь" в новую строку, а не всю строку целиком.

Я знаю,что могу использовать подстроку(x, y) и определить местоположение символов, или использовать оператор IF, но это меняется, мне было интересно, есть ли лучший метод для захвата любого значения между " и "

Извините, что я новичок в сети.

заранее спасибо

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

Я пробовал оператор IF, но есть много переменных журнала для записи операторов if.

Я пробовал использовать местоположение подстроки, но из-за изменений журнала я никогда не могу захватить правильное значение

Я пробовал использовать сопоставление шаблонов регулярных выражений
MatchCollection matches = Regex.Matches(logstring, regexpattern, RegexOptions.IgnoreCase);
foreach (Match match in matches)
{
    if (match.Success)
        StringBuilder1.Append(match.Groups[1].Value);
}


я новенькая

2 Ответов

Рейтинг:
20

Jochen Arndt

Как это сделать, в конечном счете, зависит от всех возможных записей в файле журнала.

Если это всегда в форме

<date> = <severity> = <prefix><capture>
Я бы нашел второй символ " = " и попытался идентифицировать (пропустить) префикс. Это можно сделать с помощью функций поиска строк (когда префикс всегда имеет одинаковую длину) или регулярного выражения.

Но опять же:
Это зависит от формата файла журнала (Формат префикса, когда мое предположение об общем формате верно).

[РЕДАКТИРОВАТЬ]
Цитата:
метод захвата любого значения между " и "
Если это означает, что часть, подлежащая захвату, всегда заключена в двойные кавычки, то довольно просто использовать совпадение регулярных выражений.

Затем регулярное выражение должно быть (непроверено)
^.+\"(.+)\"
или просто найдите двойные кавычки, используя строковый поиск для каждой строки.
[/РЕДАКТИРОВАТЬ]


Рейтинг:
0

Member 13610574

Спасибо, Йохен! Вот и все!!

Я использовал первый метод и нашел второй символ "=" и строку после него, а затем удалил префикс. это оставило меня с ценностями, которые я искал! Файл журнала согласован, поэтому я должен иметь возможность повторно использовать его независимо от значений.

Я мог бы посмотреть на использование регулярного выражения, но так как я нуб, я думаю, что могу просто позволить этому утонуть. Спасибо, что нашли время посмотреть на это, оцените вторую пару глаз/мозгов.