У меня есть переменная типа string
, там записан большой текст. У меня есть регулярное выражение Regex regex = new Regex(@"<div class=\""b-opinions-main-2__text\"">.+</div>");
, которое хранится в переменной типа string
.
На месте .+ должен быть текст. Как мне записать .+ в переменную?
HTML нужно парсить с помощью соответствующих инструментов.
Теперь по существу: ту часть регулярного выражения, которую необходимо получить, нужно заключать в неэкранированные круглый скобки. (...)
– захватывающая группа. Есть именованные и численные захватывающие группы. Вот пример последней: допустим, есть ваша регулярка, нужно то, что находит .+
- заключаете эту часть в скобки. В коде:
Regex reg = new Regex(@"<div class=\""b-opinions-main-2__text\"">(.+)</div>");
// ^^^^
var resultaty = reg.Matches(str) // Находим все совпадения
.Cast<Match>() // Получаем список объектов Match
.Select(m => m.Groups[1].Value) // Получаем нашу подстроку из группы №1
.ToList(); // Конвертируем в список.
Эта реглярка взята из ТС только как образец. В реальном коде не советую использовать. Пользуйтесь HtmlAgilityPack. Да, можно пытаться её улучшить и даже написать @"(?s)<div\s+class=""b-opinions-main-2__text"">(.+?)</div>"
, но и эта регулярка в один (не)прекрасный момент может дать сбой, т.к. регулярки не предназначены для парсинга HTML.
Необходимо использовать метод Matches, для получения всех совпадений из класса Regex
string g = "<div class=\"b-opinions-main-2__text\">qwerty</div>";
var regExp = new Regex("(?<=<div class=\"b-opinions-main-2__text\">).+(?=</div>)");
var matches = regExp.Matches(g);
Тип переменной matches
— MatchCollection. Данный тип не позволяет использовать LINQ
методы, но можно проходить с помощью цикла foreach
.
foreach (var m in matches){
Console.WriteLine(m);
}
p.s. Либо используйтесь @
, либо экранируйте кавычки, но не все сразу.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Какие существуют виды рекламных бордов и как выбрать подходящий?
Подскажите библиотеку с компонентами для создания музыкального плеераЧтобы там были разные кнопки переключения аудио, полоса перемотки...
Имеется шаблон в котором у меня в head находятся только стилиСсылки на скрипты находятся после footer
И сколько будет весить проект? И как все собрать в 1 файл, я так понял в папку с проектом надо добавлять кучу dll всяких
Есть в базе таблица с результатами тестов