![]() |
|
|
![]()
|
|
| Валерия |
|
||||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 598 Регистрация: 10.3.2007 Репутация: нет Всего: 8 |
Использую TRegEx на C++ Buillder XE
С поиском разобралась - всё работает:
С заменой разобралась - всё так-же работает:
Но вот теперь хочу научиться находить нужное мне по шаблону. Т.е например есть текст "a1c" и мне нужно по шаблону "a(.*?)с" выделить то, что стоит между "a" и "b" т.е в данном случае это "1" Делаю так:
Но в ответ вместо "1" пишет "a1c". Что я делаю не так? |
||||||||
|
|||||||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 26 Всего: 459 |
Потому что так задан шаблон. Если бы строка была типа "уйцкйц__a1c_ыуацйуа", то ответ был бы уже "a1c", а не вся строка. Раз определили, что символы a и с и все что между ними должно входить, значит будет входить. -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| Валерия |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 598 Регистрация: 10.3.2007 Репутация: нет Всего: 8 |
Но ведь должно запомниться всё, что находиться между скобок? (По крайней мере так в php и perl)
Или здесь такое нужно делать по другому? |
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 26 Всего: 459 |
Насколько я помню в документации такого поведения не описывалось. -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| Валерия |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 598 Регистрация: 10.3.2007 Репутация: нет Всего: 8 |
||||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 26 Всего: 459 |
Валерия, скопировать из строки подстроку нужной длинны начиная с нужного символа.
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| Валерия |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 598 Регистрация: 10.3.2007 Репутация: нет Всего: 8 |
Это не вариант, т.к начало символа может быть всегда разное. Мне нужно именно что бы выполнялся поиск по регулярному выражению. В php и perl та регулярка, которую я написала, будет работать именно так как я захочу Я была бы очень рада, если бы мне кто-то показал на моём примере, как это сделать на С++ именно с этой либой. Это сообщение отредактировал(а) Валерия - 24.11.2010, 21:48 |
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 26 Всего: 459 |
Валерия, значит попробовать другой вариант из буста. Он почти стандарт уже http://blog.alno.name/ru/2008/10/using-boost-regex
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| Валерия |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 598 Регистрация: 10.3.2007 Репутация: нет Всего: 8 |
Наше общение с Вами выглядит так, будто я пришла в магазин покупать туфли от Версаче, а Вы мне говорите "знаете, лучше купите кроссовки Аддидас". Я ведь попросила показать мне именно на моём примере, а в моём примере я не использую бустовые регулярки. Прошу не воспринимать как обиду Это сообщение отредактировал(а) Валерия - 24.11.2010, 22:13 |
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 26 Всего: 459 |
Валерия, я пользовался этой либой, изучал доку вдоль и поперек. Извлекать фрагменты регулярки она не умеет, только целиком. Сам я после прохода такой регуляркой извлекал нужный мне кусок руками. Например, в вашем случае нужно копировать начиная с первого символа n - 2 символов, где n длина строки.
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| Валерия |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 598 Регистрация: 10.3.2007 Репутация: нет Всего: 8 |
Неужели регулярка не может извлекать фрагмент? о_О
Не дописали что-ли?) Дело в том что у меня количество символов всегда может быть разное, поэтому статично нельзя указать номера символов. А Boost нормально работает на Builder XE под Windows? Если я не ошибаюсь, это ведь никсовая библиотека. Если нормально дружит, можно ли сразу весь Boost установить, т.е что бы библиотеки, например, работы с потоками тоже сразу установились, а не ставить их по одной? Это сообщение отредактировал(а) Валерия - 24.11.2010, 23:21 |
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 26 Всего: 459 |
Начиная с версии 2009 поставляется специальная адаптированная версия для билдера. И с каждым апдейтом обновляется. Это кросплатформенная либа как и STL. -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| oldcode |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 116 Регистрация: 8.10.2010 Репутация: 0 Всего: 0 |
1. Все с точностью до наоборот 2. Зря вы не обратили внимание на пост №2 здесь http://forum.vingrad.ru/forum/topic-315862.html. Это сообщение отредактировал(а) oldcode - 25.11.2010, 18:50 |
|||
|
||||
| QVO |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 9.2.2012 Где: Россия Репутация: нет Всего: нет |
Понимаю что тема старая, но автор не получил ответа на заданный вопрос.
|
|||
|
||||
![]()
|
| Правила форума "С++ Builder" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C++ Builder | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |