Помогите составить регулярное выражение. Из исходного кода нужно взять одну строку из двух

Old

Client
Регистрация
24.01.2018
Сообщения
176
Реакции
87
Баллы
28
Приветствую всех, нужна помощь.

Есть две строки, регуляркой нужно удалить только первую строку из двух. Текст между тегами меняется. Моя регулярка из конструктора удаляет обе строки.

HTML:
Развернуть Свернуть Копировать
<li>Рандомное_слово: <br></li>

<li>Рандомное_редложение<br></li><li>Рандомное_слово: значение<br></li><li>Рандомное_слово: <br></li>
 
Последнее редактирование:
Просто первую строку удалить?
C#:
Развернуть Свернуть Копировать
List <string> list = new List <string> (Regex.Split(project.Variables["txt"].Value, Environment.NewLine));
list.RemoveAt(0);
 
  • Спасибо
Реакции: Old
C#:
Развернуть Свернуть Копировать
Regex reg = new Regex("<li>Рандомное_слово: <br></li>", RegexOptions.IgnoreCase);
return reg.Replace(project.Variables["txt"].Value, "",1);
 
  • Спасибо
Реакции: Old
C#:
Развернуть Свернуть Копировать
Regex reg = new Regex("<li>Рандомное_слово: <br></li>", RegexOptions.IgnoreCase);
return reg.Replace(project.Variables["txt"].Value, "",1);
В том то и дело, что между тегами рандомное слово, а не постоянное, поэтому не сработает. Я так и подписал в коде "Рандомное_слово".

В принципе есть старое проверенное решение, наверное воспользуюсь им. Нужно перед всеми <li> добавить какой-нибудь уникальный текст, например <start>, а после </li> добавить </end>. После этого можно будет регуляркой привязаться к <start><li> и </li></end> и удалить нужную конструкцию.
 
C#:
Развернуть Свернуть Копировать
string text = @"<li>Рандомное_слово: <br></li>

<li>Рандомное_редложение<br></li><li>Рандомное_слово: значение<br></li><li>Рандомное_слово: <br></li>";
return string.Join("<br></li>",text.Split(new[]{"<br></li>"},StringSplitOptions.None).ToList().Where(x=>!string.IsNullOrEmpty(Regex.Replace(x,@"<.*?>","").Split(':').Last().Trim())));
Если я правильно наванговал конструкцию, которую надо удалить...
 
  • Спасибо
Реакции: Old
Если я правильно наванговал конструкцию, которую надо удалить...
Да, все верно.
Только удалилось два лишних тега.

HTML:
Развернуть Свернуть Копировать
Результат получился такой:
<li>Рандомное_редложение<br></li><li>Рандомное_слово: значение

А нужен следующий:
<li>Рандомное_редложение<br></li><li>Рандомное_слово: значение<br></li>

Нужно оставить <br></li> в конце.
 
Последнее редактирование:
C#:
Развернуть Свернуть Копировать
string text = @"<li>Рандомное_слово: <br></li>

<li>Рандомное_редложение<br></li><li>Рандомное_слово: значение<br></li><li>Рандомное_слово: <br></li>";
MatchCollection mc = Regex.Matches(text, @"<li>.*?<br></li>");
text = "";
foreach(Match m in mc)
    if(!string.IsNullOrEmpty(Regex.Replace(m.Value,@"<.*?>","").Split(':').Last().Trim()))
        text+=m.Value;
return text;
 
  • Спасибо
Реакции: Old

Кто просматривает тему: (Всего: 0, Пользователи: 0, Гости: 0)