Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > C/C++: Общие вопросы > Как получить значение между в std::regex? |
Автор: manking 8.11.2011, 14:02 | ||
Здравстуйте. Пытаюсь перейти с использования библиотеки pcre на std::regex которые появились в новом стандарте С++ из-за отсутствия 64 битной библиотеки pcre. Но они не поддерживают некоторые элементы из тех что учил еще по фридлу. например в тексте
надо получить то что между ###. Раньше я писал что то типа (?<=[#]{3})[^9]+(?=[#]{3}) и это отлично работало. А как здесь? std::regex это posix? Не могу найти документацию нормальную вот на одном сайте сказано <b>(.*)</b> - произвольная последовательность символов, заключённых между lt;b> и lt;/b>. Но это ничего не находит. Опережающая проверка (?<=[#]{3}) не компилируется(в самом классе regex). |
Автор: bsa 8.11.2011, 14:32 |
случаем тут триграфы не возникают? |
Автор: manking 8.11.2011, 14:38 | ||
Никогда их не видел вживую. (?<=[#]{3}) это некомпилируется как регулярное выражение, то есть после запуска exe бросается исключение. |
Автор: bsa 8.11.2011, 14:43 |
manking, попробуй просто вывести на экран эту строку для начала. Совпадает она с исходной или нет? Кстати, триграфов и диграфов тут нет... |
Автор: manking 8.11.2011, 14:55 | ||||
Какую строку с текстом или выражение? Они обе совпадают. Могу даже выложить коды их символов.
|
Автор: igorrr37 8.11.2011, 15:14 | ||
стандарт вроде не поддерживает какие то вещи из регексов, вот так всё работает
выводит text |
Автор: manking 8.11.2011, 15:27 | ||||
Да это работает спасибо. |