Чтение большого текстового файла

158
06 декабря 2021, 22:30

Имею большой текстовый файл(~50000 строк). Через streamreader читаю его, в файле имеются пустые строки. Ко всему файлу мне необходимо применить регулярное выражение и найти подходящие элементы. В итоге у меня получается так, что у регулярное выражение применяется только к каждой строке, а необходимое совпадение может быть на двух строках(то есть начинаться на одной, а заканчиваться на другой, мне необходимо найти некоторое слово и два слова правее и левее него). Кусочек моего кода.

//пробегаю по файлу пока он не закончится
while ((s = sr.ReadLine()) != null)
{
    s = s+ s.Trim();
    if (s == "")
        continue;
    //новый экземпляр выражения
    //шаблон поиска - слово для поиска берется из текстового поля, через string.Format вставляется в регулярное выражение
    Regex rgx = new Regex(string.Format("([A-zА-я0-9\\-]+)[ \\.,?]([A-zА-я0-9\\-]+)[ \\.,?]({0})[ \\.,]([A-zА-я0-9\\-]+)[ \\.,?]([A-zА-я0-9\\-]+)", textBox1.Text));
    //для каждого совпадения в файле
    foreach (Match match in rgx.Matches(s))
    {
        //с помощью string.Format составляю строку, которую потом записываю в файл .csv
        streamWriter.WriteLine(string.Format("{0};{1};{2};{3};{4}", match.Groups[1], match.Groups[2], match.Groups[3], match.Groups[4], match.Groups[5]));
    }
}
READ ALSO
Не сохраняются данные в $_SESSION

Не сохраняются данные в $_SESSION

При обновлении страницы (по нажатию определенной кнопки) сиссия каждый раз обновляется, то есть старое значение, сохраненное в ней, я не могу...

262
Не приходят IPN уведомления laravel

Не приходят IPN уведомления laravel

у меня такой вопросЕще около двух лет назад я пытался поставить Payeer на Laravel, но безуспешно

178
вложения в циклах foreach при парсинге

вложения в циклах foreach при парсинге

Нужна помощь есть html дерево где с помощью DomCrawler парсим нужные нам значения(имя товара и цена) сложность в том как из двух масивов сделать один(ключ...

172
PHP. Перестановка элементов массива

PHP. Перестановка элементов массива

Есть массив $X = [0,-5,-9,3,76,-99,-3,-4,101,-212,10,31]; Надо переставить отрицательные элементы из в начало массива, а положительные в конец, сохранив при этом...

198