powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Регулярыне выражения std::regex - ошибка компиляции
5 сообщений из 5, страница 1 из 1
Регулярыне выражения std::regex - ошибка компиляции
    #37994254
sync_ma
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MSVC 2010, у меня возникает ошибка "Debug Error R6010 - abort() has been called" при добавлении в выражение диапазона маленьких русских букв а-я . Диапазон заглавных букв или любых английских - все ок. Не знаю, что это вообще за ошибка?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
#include <regex>
using namespace std;

int main(void)
{
	regex ss(".литера?[ ]+[Д|д]([^А-Яа-яЁё]|$)");

	return 0;
}


Скриншот строки под отладчиком:


...
Рейтинг: 0 / 0
Регулярыне выражения std::regex - ошибка компиляции
    #37994320
bazile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sync_ma, интересная ошибка. Похоже что regex не может распарсить текст регулярного выражения. На stackoverflow есть обсуждение такой же ошибки - Why exception with this regular expression pattern (tr1::regex)? - , но там проблема сязана с escape последовательностями, которых у тебя нет. На моем компе порблема воспроизвести не получилось. Возможно дело в локали. Попробуй поставить std::locale::global(std::locale("")); перед переменной ss.
...
Рейтинг: 0 / 0
Регулярыне выражения std::regex - ошибка компиляции
    #37995148
sync_ma
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за ответ; но локаль ничего не изменила...
...
Рейтинг: 0 / 0
Регулярыне выражения std::regex - ошибка компиляции
    #37995262
bazile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sync_ma, выложи свой проект. Так будет легче проверить.
...
Рейтинг: 0 / 0
Регулярыне выражения std::regex - ошибка компиляции
    #38000022
sync_ma
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
На самом деле если не указывать локаль, то все компилируется без проблем, но русские буквы std::regex не воспринимает (по крайней мере у меня) и все выражения выполняются не верно; если указать локаль как предложил bazile , то возникает описанная выше ошибка. Пробовал так:
Код: plaintext
1.
2.
std::locale cp1251_locale("ru_RU.CP1251");
std::locale::global(cp1251_locale);


возникает исключение "bad locale name"...
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Регулярыне выражения std::regex - ошибка компиляции
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]