Каждый раз, когда я положил [:digit:]
в регулярном выражении, как так: regex r("[:digit:]")
он бросает исключение и .what()
просто возвращает regex_error
вместо описательного, содержательного объяснения Ошибка. То же самое происходит, когда я пробую regex r("\\d")
. И когда я пробую regex r("\d")
, мой компилятор говорит, что \d
- это незнакомая последовательность escape-символов. Я в коде: Блоки кстати. Вот мой код:regex_error, появляющиеся при попытке сделать простые вещи, как [: цифры:] или д
#include <regex>
#include <iostream>
using namespace std;
int main()
{
regex r("\d"); //and or r("[:digit:]")
string i = "5";
if(regex_match(i,r))
{
cout << "Integer";
}
return 0;
}
Если вы используете gcc: последний раз, когда я проверил gcc, еще не реализована полная поддержка std :: regex. Это может быть или не быть изменено с текущей версией gcc. Проверьте документацию gcc для получения дополнительной информации. –
Если вы согласны использовать цифру ** [0-9] *** Я не думаю, что ваша версия C++ совместима с POSIX. –
Только что скорректировал мой код Джонни Хенли. Благодарю. –