![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
Razerio |
![]() ![]()
Сообщение
#1
|
Студент ![]() Группа: Новичок Сообщений: 13 Регистрация: 16.1.2013 Пользователь №: 3677 Спасибо сказали: 1 раз(а) Репутация: ![]() ![]() ![]() |
Никак не получается составит работающее регулярное выражение.
Есть примерный текст:
Из текста нужно вытащить все слова начинающиеся со звёздочки(*), кроме тех, что находятся между "<a" и "</a>". То есть в данном случаи должны найтись слова: *must *materials *distribution А остальные должны быть пропущены. Все слова найти довольно просто "[*]+[A-Za-z]+", но вот найти только те, которые вне HTML тегов незнаю как. P.S. Для работы с регулярками использую дефолтный QRegExp (Qt 4.8.4). |
|
|
![]() |
Litkevich Yuriy |
![]()
Сообщение
#2
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
Iron Bug |
![]()
Сообщение
#3
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Модератор Сообщений: 1611 Регистрация: 6.2.2009 Из: Yekaterinburg Пользователь №: 533 Спасибо сказали: 219 раз(а) Репутация: ![]() ![]() ![]() |
кроме тех, что находятся между "<a" и "</a>". это кость в горле Регулярных выражений, с помощью них невозможно отслеживать "парные скобки", т.е. элементы играющие их рольвозможно, это кость в горле конкретной реализации. я спокойно распарсиваю такие выражения в boost, ANTLR, в обычном перле. в целом, у регекспов такого ограничения нет. это рекурсивные операции. |
|
|
![]() ![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 4.5.2025, 11:34 |