Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.78/18: Рейтинг темы: голосов - 18, средняя оценка - 4.78
13 / 13 / 2
Регистрация: 22.04.2010
Сообщений: 658

Регулярное выражение изъятие тегов

05.03.2014, 18:11. Показов 3850. Ответов 25
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Не могу понять почему не работает? Подскажите что да как..
C#
1
2
3
4
5
6
7
8
 const string patternnao = @"(?<=<div class=""item"">).+?(?=</div>)";
            Regex rnao = new Regex(patternnao, RegexOptions.IgnoreCase);
 
            MatchCollection matches = rnao.Matches(html);
            foreach (Match matche in matches)
            {
                label1.Text = matche.Value;
            }
Должно извлекать и перебирать все теги div с классом item, но не делает этого...
HTML5
1
<div class="item">123</div>***<div class="item">456</div>
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
05.03.2014, 18:11
Ответы с готовыми решениями:

Регулярное выражение для тегов
Не могу додуматься, как сделать так чтобы выражение что в тэги t было все синие(одним и вторым матчем и сам тэг тоже был в одном матче...

Регулярное выражение для тегов (прописью|ЗАГЛАВНЫМИ)
хмммм столкнулся с проблемой, как указать в выражении что тег может быть написан с прописной и с заглавной букв, подскажите как...

Регулярное выражение для удаление тегов XML
Подскажите пожалуйста каким регулярным выражением можно удалить все XML теги. Например: &lt;name&gt;Дядя Петя&lt;/name&gt;, что бы...

25
13 / 13 / 2
Регистрация: 22.04.2010
Сообщений: 658
06.03.2014, 18:58  [ТС]
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Psilon Посмотреть сообщение
koc94ok, в общем я попробовал, очень много ошибок в разметке, он даже не соответствует XHTML 1.1, не говоря про более строгие стандарты. Поэтому XDoc'ом не получится распарсить. Например, с точки зрения XML тэг <img src="blabla.jpg"> не является валидным, т.к. тэг без тела должен заканчиваться на />, а тут сплошь и рядом такое. Поэтому придется все же HtmlAgilityPack'ом пользоваться. Уж насколько я не люблю сторонние инструменты, но делать нечего
А регуляркой не получится? Типо:
HTML5
1
<div class="item">***<div class="name">123</div><div class="456</div></div>
результат
123
456
Второй класс меняется, поэтому цепляем сразу после кавычек class=". В теории возможно, поможешь записать такую регулярку?
0
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
06.03.2014, 22:08
koc94ok, нельзя. Регулярка не умеет работать с иерархическими структурами.

Добавлено через 3 часа 6 минут
koc94ok, а что если так?
C#
1
2
3
4
5
6
7
            var content = @"<div class=""item"">123</div>***<div class=""item""><div class=""main"">456</div></div>";
            const string patternnao = @"<div class=""item"">(.+?(</div>)?)</div>";
            Regex rnao = new Regex(patternnao, RegexOptions.IgnoreCase | RegexOptions.Singleline);
            foreach (Match match in rnao.Matches(content))
            {
                Console.WriteLine(match.Groups[1].Value);
            }
1
13 / 13 / 2
Регистрация: 22.04.2010
Сообщений: 658
06.03.2014, 22:38  [ТС]
Цитата Сообщение от Psilon Посмотреть сообщение
koc94ok, нельзя. Регулярка не умеет работать с иерархическими структурами.
Добавлено через 3 часа 6 минут
koc94ok, а что если так?
Очень рядом, но второй див не цепляет, выходит сразу после первого, посмотри этот пример, может поймешь где ошибка:
C#
1
2
3
4
5
6
7
            var content = @"<div class=""item"">123</div>***<div class=""item""><div class=""main"">456</div><div class=""addon"">2256</div></div>";
            const string patternnao = @"<div class=""item"">(.+?(</div>)?)</div>";
            Regex rnao = new Regex(patternnao, RegexOptions.IgnoreCase | RegexOptions.Singleline);
            foreach (Match match in rnao.Matches(content))
            {
                label1.Text = match.Groups[1].Value;
            }
Похоже нашел регулярку, все гениальное просто, вроде работает конкнетно в моем примере, который скидывал в ЛС + последняя часть твоего ответа + эта регулярка:
C#
1
  const string patternnao = @"<div class=""item"">(.*?)</div>\s+</div>";
0
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
06.03.2014, 22:48
koc94ok, все же не вариант. Если и сделать, будет настолько костыльно, что при любом чихе все развалится. А я не любитель костылей.
0
13 / 13 / 2
Регистрация: 22.04.2010
Сообщений: 658
06.03.2014, 22:50  [ТС]
Цитата Сообщение от Psilon Посмотреть сообщение
koc94ok, все же не вариант. Если и сделать, будет настолько костыльно, что при любом чихе все развалится. А я не любитель костылей.
Есть варианты лучше?
0
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
06.03.2014, 22:51
koc94ok, который раз пишу HtmlAgilityPack. Лично не пользовался, но вообще нахваливают )
Для разбора html самое то.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
06.03.2014, 22:51

Регулярные выражение. Вытащить информацию из тегов<td></td>
Всем доброго времени суток. Мне нужно вытащить информацию из тегов&lt;td&gt;&lt;/td&gt; и &lt;span&gt;&lt;/span&gt;. &lt;td...

Регулярное выражение на c#
Помогите, пожалуйста, с помощью регулярки на языке c# из следующего текста (используйте это как одну строку): ...

Регулярное выражение
Имеется текст, в нем есть сумма, разделенная произвольным кол-вом пробелов(2 3 453 556 )после неё идет (blr или belor.rub). В тексте...

Регулярное выражение
Есть строки такого вида 1 Kilburn NW6 United Kingdom England Greater London 51.553/-0.192 2 Ealing W5 United...

Регулярное выражение
Как на языке regexp выразить мысль &quot;любая буква, кроме X&quot; не прибегая к извращениям вроде


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
26
Ответ Создать тему
Новые блоги и статьи
Nekobox - outbounds[0].transport: unknown transport type: raw
damix 01.10.2026
Фикс ошибки Правым кликом по серверу -> отладочная информация -> edit Заменить "net": "raw", на "net": "tcp", Нажать кнопку reload.
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru