Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.77/13: Рейтинг темы: голосов - 13, средняя оценка - 4.77
0 / 0 / 0
Регистрация: 09.10.2014
Сообщений: 55

Некий парсер

20.11.2014, 16:33. Показов 2731. Ответов 23
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Допустим есть строка:
C++
1
            1 hour ago            <span style="color: #72A326; text-shadow: 1px 1px 0px #4A7010; font-weight: bold;"> LIVE</span>
Как мне вытащить значение LIVE? Думал, через регулярные выражения. Но не совсем понял как именно вытащить это значение. Пролазил на многих форумах, но что-то не понял. Можно пожалуйста чёткий пример использования регулярок в таком случае.. пожалуйста?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
20.11.2014, 16:33
Ответы с готовыми решениями:

Некий процесс
Доброго дня. Прикиньте!! некий процесс швхост ексе грузит 99% системы уже полтора часа, все страшно тормозит, вплоть до того что все на...

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

Некий графический редактор
Всем добрый день. В общем пишу игру, которая запускается в консоли. Для этого рисую задний фон с помощью окраски нужных ячеек консоли. Все...

23
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33398 / 21508 / 8236
Регистрация: 22.10.2011
Сообщений: 36,906
Записей в блоге: 12
20.11.2014, 16:42
C++
1
2
3
4
5
6
7
8
9
    String s = "       1 hour ago            <span style=\"color: #72A326; text-shadow: 1px 1px 0px #4A7010; font-weight: bold;\"> LIVE</span>";
    TRegExpr *innerRe = new TRegExpr;
    innerRe->Expression = "<span([^>]+)>([^<]*)</span>";
    innerRe->Compile();
    if (innerRe->Exec(s))
    {
        ShowMessage(innerRe->Match[2]); // Будет нужный результат...
    }
    delete innerRe;
0
0 / 0 / 0
Регистрация: 09.10.2014
Сообщений: 55
20.11.2014, 17:16  [ТС]
ЧТо-то я вообще не вкуриваю...
где boost и regex в XE7?

Добавлено через 4 минуты
видимо в XE7 только TRegEx через #include <RegularExpressions.hpp>
Если я не прав поправьте кто-нибудь..
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33398 / 21508 / 8236
Регистрация: 22.10.2011
Сообщений: 36,906
Записей в блоге: 12
20.11.2014, 17:20
Я бы рекомендовал использовать сторонний RegExpr.pas (который я и использовал выше), у <RegularExpressions.hpp> большая проблема с нелатинскими символами...
0
0 / 0 / 0
Регистрация: 09.10.2014
Сообщений: 55
20.11.2014, 17:26  [ТС]
UI, а можно какую нибудь ссылку на него? никак не найду..(
0
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
20.11.2014, 17:35
Цитата Сообщение от UI Посмотреть сообщение
большая проблема с нелатинскими символами...
Например?

Добавлено через 2 минуты
C++
1
2
3
4
5
6
7
8
9
10
11
#include <System.RegularExpressions.hpp>
// #pragma link "msvcrt.lib"
 
String __fastcall ParseLive(const String& AContent)
{
    TRegEx Re("<span.*?>(.*?)</span>");
    TMatch M = Re.Match(AContent);
    if(M.Success)
        return M.Groups.Item[1].Value;
    else return "";
}
Добавлено через 2 минуты
http://docwiki.embarcadero.com... ons.TRegEx

Цитата Сообщение от trystyle Посмотреть сообщение
UI, а можно какую нибудь ссылку на него? никак не найду..(
http://nmdsoft.blogspot.com/20... elphi.html
0
0 / 0 / 0
Регистрация: 09.10.2014
Сообщений: 55
20.11.2014, 17:39  [ТС]
Avazart,
C++
1
[bcc32 Error] Unit1.cpp(20): E2285 Could not find a match for 'TRegEx::TRegEx(const char *)'
0
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
20.11.2014, 17:45
Билдер какой у тебя?
0
0 / 0 / 0
Регистрация: 09.10.2014
Сообщений: 55
20.11.2014, 17:46  [ТС]
Цитата Сообщение от Avazart Посмотреть сообщение
Билдер какой у тебя?
XE7
0
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
20.11.2014, 17:47
C++
1
#include <System.RegularExpressions.hpp>
Хедер забыл ?
0
0 / 0 / 0
Регистрация: 09.10.2014
Сообщений: 55
20.11.2014, 17:49  [ТС]
Цитата Сообщение от Avazart Посмотреть сообщение
Хедер забыл ?
ноу коненчо. Всё сделал как у теюя в посте. не пускает(
0
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
20.11.2014, 17:51
Должно работать http://docwiki.embarcadero.com... ons.TRegEx
Изменения по крайней мере я не замечаю.
Хотя конечно можно попробовать:
C++
1
TRegEx Re(UnicodeString(L"<span.*?>(.*?)</span>"));
0
0 / 0 / 0
Регистрация: 09.10.2014
Сообщений: 55
20.11.2014, 17:54  [ТС]
Avazart, не помогло, не понимаю что-то совсем, почему..
0
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
20.11.2014, 17:55
Или руки кривые или версия IDE.

У меня в XE3 нормально работает.
0
0 / 0 / 0
Регистрация: 09.10.2014
Сообщений: 55
20.11.2014, 17:58  [ТС]
Хотя билдер и говорит, мол такая штука есть:
C++
1
__fastcall TRegEx(const System::UnicodeString Pattern, TRegExOptions Options);
Добавлено через 2 минуты
что-то свосем приехали...
C++
1
[bcc32 Error] Unit1.cpp(21): E2285 Could not find a match for 'TRegEx::TRegEx(UnicodeString,TRegExOption)'
0
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
20.11.2014, 18:16
А да точно первый конструктор исчез, нужно теперь еще и указывать второй параметр TRegExOption
0
0 / 0 / 0
Регистрация: 09.10.2014
Сообщений: 55
20.11.2014, 18:18  [ТС]
Цитата Сообщение от Avazart Посмотреть сообщение
А да точно первый конструктор исчез, нужно теперь еще и указывать второй параметр TRegExOption
он даже с ним не работает(

сейчас "переустановлю" и проверю..
0
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
20.11.2014, 18:43
Пробуй:
C++
1
2
3
4
5
6
7
8
9
10
11
#include <System.RegularExpressions.hpp>
// #pragma link "msvcrt.lib"
 
String __fastcall ParseLive(const String& AContent)
{
    TRegEx Re("<span.*?>(.*?)</span>",TRegExOptions()); // TRegExOptions()<<roIgnoreCase;
    TMatch M = Re.Match(AContent);
    if(M.Success)
        return M.Groups.Item[1].Value;
    else return "";
}
0
0 / 0 / 0
Регистрация: 09.10.2014
Сообщений: 55
20.11.2014, 19:09  [ТС]
Avazart, не выходит
ооо, вот, спасибо)
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33398 / 21508 / 8236
Регистрация: 22.10.2011
Сообщений: 36,906
Записей в блоге: 12
20.11.2014, 21:34
Цитата Сообщение от Avazart Посмотреть сообщение
Например?
Ты реально думаешь, что весь мир говорит по-русски, и у всех кириллица - системная кодировка? Возьми текст на любом другом языке, который не совпадает с этой твоей кириллицей, на армянском, например, и попробуй найти одно слово в строке из нескольких слов, посмотрим, как у тебя это выйдет через System.RegularExpressions.hpp. Вот у меня не кириллица выставлена в системе, поэтому все огрехи - как на ладони, ибо приходится работать с кириллицей в Юникоде, а тут - биг бада бум, разработчикам на кириллицу в частности, и на нелатинские символы в общем - начхать...

Пока работаешь только с ANSI - проблемы не видишь. Только вот на фиг тогда обновляться с BCB6?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
20.11.2014, 21:34
Помогаю со студенческими работами здесь

Некий Win32/QHost
Привет, ребят! Постоянно вылезает сообщение Нода о том что найдена вредоносная троянская программа Win32/QHost в директории:...

Вывести некий элемент массива
Почему пишет что переменная V неопределена? И вобше как тогда вывести первый отрицательний елем. массива, и первый положетильний, идущий...

Имеется некий флеш элемент
В веббраузере загружена страница необходимо заполнить поле ввода и кликнуть ввод код элемента такой &lt;object...

Как сделать некий InputBox?
Здрасте) Подскажите, пожалуйста. Есть textbox сгенирированный шарпом. Текстбоксов много и шрифт, соотвестенно, мелкий. Как сделать...

Разбить некий временной период
Задача, подскажите в каком двигаться на майскле: Есть некий временной интервал t0, t1 : TIME Есть дата-временной период dt0, dt1 :...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru