Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
8 / 8 / 6
Регистрация: 02.12.2013
Сообщений: 54

Регулярки - получение текста в тегах <a>

05.08.2014, 18:18. Показов 1513. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Нужно из
HTML5
1
<a href="/types/random">random</a>
вытащить random который как вы видите встречается 2 раза и как вы понимаете значение рандомно.
Регулярки только учу, вот чтот накидал, но не пашет, в чем ошибка?
C#
1
const string PATTERN = @"\<a\href=\""\/types\/[.\\-_a-z0-9]""\>(?<random>[.\\-_a-z0-9])\<\/a\>";
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
05.08.2014, 18:18
Ответы с готовыми решениями:

Парсинг текста в тегах <P>
Здравствуйте, как можно отпарсить текст? он в тегах &lt;P&gt; Вот пример страницы http://news.liga.net/news/politics/5...ili_v_sizo.htm ...

Регулярки. Сплит текста
Здравствуйте! Необходимо вырезать(вывести) из текста только вопросительные предложения. Написал регулярку которая вырезает только первое...

Показ модального окна при изменении текста в тегах <p>
всем привет! такая ситуация, есть корзина, которая показывает по умолчанию такой тест &quot;Кол-во товара:0&quot;, схеме, человек кликает...

14
2444 / 1842 / 406
Регистрация: 15.12.2013
Сообщений: 8,243
05.08.2014, 18:22
joker13-13, под словом рандом вы понимаете последовательность из цифр и букв?
0
8 / 8 / 6
Регистрация: 02.12.2013
Сообщений: 54
05.08.2014, 18:26  [ТС]
S_el случайную последовательность символов, в данном случае цифр и букв.
0
Заблокирован
05.08.2014, 18:27
joker13-13, может проще вообще регулярки не использовать?

C#
1
2
3
4
5
            XmlDocument t = new XmlDocument();
            t.Load("1.txt");
            XmlNodeList nodeList = t.DocumentElement.SelectNodes("//a");
            foreach (XmlNode x in nodeList)
                Console.WriteLine(x.InnerText);
1.txt:
Code
1
<a href="/types/random">random</a>
Code
1
2
random
Для продолжения нажмите любую клавишу . . .
0
8 / 8 / 6
Регистрация: 02.12.2013
Сообщений: 54
05.08.2014, 18:33  [ТС]
Ev_Hyper спасибо, но не думаю что подойдет.
у меня не единое искомое значение, мне нужно пропарсить html код страницы и вытащить значения из приблизительна ста подобных тегов, и учитывая что есть много ненужных мне тегов с </a>.
0
Заблокирован
05.08.2014, 18:36
joker13-13, прикрепите файл и скажите, что нужно вытащить
0
3 / 3 / 2
Регистрация: 02.07.2013
Сообщений: 31
05.08.2014, 18:36
так шаблон выглядеть должен, если внутри тегов буквы a-z A-z
C#
1
>(?<text>[a-zA-Z]{0,})<
вот и берешь из совпадения группу, я ее назвал text.
0
871 / 721 / 304
Регистрация: 15.04.2013
Сообщений: 2,047
Записей в блоге: 5
05.08.2014, 18:41
juninhonvp, joker13-13,
Регулярками никогда не парсят HTML, для этого есть DOM парсер.
0
2444 / 1842 / 406
Регистрация: 15.12.2013
Сообщений: 8,243
05.08.2014, 18:47
Лучший ответ Сообщение было отмечено Ev_Hyper как решение

Решение

juninhonvp, ваш шаблон найдет совпадения и в случае

C#
1
<a href="/types/global">random</a>
я в регулярках плохо разбираюсь,поэтому могу предложить только вариант "в лоб"

C#
1
.*<a href="\/\w*\/(\w*)"\>(\1)<\/a>
2
8 / 8 / 6
Регистрация: 02.12.2013
Сообщений: 54
05.08.2014, 18:47  [ТС]
Ev_Hyper, audio.rar
из строк типо
HTML5
1
2
3
<a href="/types/3ga">3ga</a>
<a href="/types/5xb">5xb</a>
<a href="/types/5xe">5xe</a>
вытащить 3ga,5xb,5xe
0
2444 / 1842 / 406
Регистрация: 15.12.2013
Сообщений: 8,243
05.08.2014, 18:48
Цитата Сообщение от XRoy Посмотреть сообщение
Регулярками никогда не парсят HTML, для этого есть DOM парсер.
Почему?
0
3 / 3 / 2
Регистрация: 02.07.2013
Сообщений: 31
05.08.2014, 19:06
Цитата Сообщение от joker13-13 Посмотреть сообщение
вытащить 3ga,5xb,5xe
C#
1
>(?<text>[a-zA-Z0-9]{0,})<
1
8 / 8 / 6
Регистрация: 02.12.2013
Сообщений: 54
05.08.2014, 19:20  [ТС]
Цитата Сообщение от S_el Посмотреть сообщение
я в регулярках плохо разбираюсь,поэтому могу предложить только вариант "в лоб"
C#
1
.*<a href="\/\w*\/(\w*)"\>(\1)<\/a>
&&
Цитата Сообщение от juninhonvp Посмотреть сообщение
C#
1
>(?<text>[a-zA-Z0-9]{0,})<
==
C#
1
@".*<a href=""\/\w*\/(\w*)""\>(?<text>[a-zA-Z0-9]{0,})<\/a>";
S_el,juninhonvp все работает, спасибо большое!
0
Заблокирован
05.08.2014, 20:26
В качестве альтернативы предложу вариант с использованием HtmlAgilityPack:

C#
1
2
3
4
5
            HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
            doc.Load("1.txt");
            foreach (var x in doc.DocumentNode.SelectNodes("//table[@class='tbl']"))
                foreach (var z in x.SelectNodes("//td[@class='ex']"))
                    Console.WriteLine(z.InnerText);
По-моему, это проще, чем писать регулярное выражение.
0
871 / 721 / 304
Регистрация: 15.04.2013
Сообщений: 2,047
Записей в блоге: 5
05.08.2014, 23:12
Цитата Сообщение от S_el Посмотреть сообщение
Сообщение от XRoy
Регулярками никогда не парсят HTML, для этого есть DOM парсер.
Почему?
HTML контекстно свободный тоесть для него нет разницы
HTML5
1
<div class="a" id="b"></div>
или
HTML5
1
<div id="b" class="a"></div>
. Тогда как для регулярок это уже 2 выражения, и количество тут растет факториально.

Но конечно пару страниц конечно можно и отпарсить регулярками, скорее всего все будет нормально.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
05.08.2014, 23:12
Помогаю со студенческими работами здесь

Поиск по регулярке наоборот: совпадение полного текста с частью регулярки
Подскажите как сделать чтобы регулярка искала не полностью совпадение себя с текстом, а наоборот совпадение всего текста с частью себя ...

Получение текста с vk.com
Блин люди добрые, помогите наконец, уже сколько бьюсь и все никак не получается сделать Нужно получить текст количества сообщений из...

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

Получение текста с картинки
Какими способами можно получить текст из картинки на шарпе? Заранее Спасибо :)

Получение текста сообщения
Есть такой код: function read() { $result =...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru