我试图制作一个正则表达式,用这样的下划线来评估一系列数字:_201312 我的数字部分有问题;我总是收到REG_NOMATCH消息。 这是代码:
#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 :(得分:1)
试试这个
regmatch_t m[1];
regex_t r;
if ( regcomp( &r,"^_[0-9]+", REG_EXTENDED ) != 0 ) {
printf("failed create regexp\n");
}
regexec( &r, "_2211231", 1, m, 0 );