0
Я пытаюсь сделать регулярное выражение для оценки последовательности чисел, начинающихся с подчеркивания следующим образом: _201312 У меня проблемы с числовой частью; Я всегда получаю сообщение REG_NOMATCH. Вот код:Регулярное выражение C++ с regexec() не соответствует
#include <regex.h>
int result_exp,flag_buffer=0;
regex_t rx_t;
regmatch_t match[10];
result_exp = regcomp(&rx_t,"^[0-9]+$",REG_NOSUB); //
if(result_exp==0){
printf("result_exp es 0\n");
}else if(result_exp == REG_BADBR){
printf("REG_BADBR\n");
}else if(result_exp == REG_BADPAT){
printf("REG_BADPAT\n");
}
result_exp = regexec(&rx_t, tableName.c_str(), 0, 0, 0);
if(result_exp==0){ //match
flag_buffer=1;
}else if(result_exp == REG_NOMATCH){
printf("REG_NOMATCH\n");
}
Я пытался с этим выражением тоже:
result_exp = regcomp(&rx_t,"[[:digit:]]+",REG_NOSUB);
Я использовал флаг REG_NOSUB, а затем у меня нет, и результат был тот же.
У вас есть идея?
Благодаря
что насчет _ это должно быть в регулярное выражение справа, так как вы начинаете с «^»? Как изменить регулярное выражение на "^ _ [0-9] + $"? – hetepeperfan
Это выглядит как обычный C мне, почему C++ в названии и как тег? –