带有 regexec() 的 C++ 正则表达式不匹配

标签 c++ c regex

我正在尝试创建一个正则表达式来评估以下划线开头的数字序列,如下所示:_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 标志,然后我没有使用,结果是一样的。

你有什么想法吗?

谢谢

最佳答案

试试这个

   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 );

关于带有 regexec() 的 C++ 正则表达式不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20574895/

相关文章:

c++ - 强制页面边界段错误?

c++ - JAVA(AES/CBC/PKCS5PADDING)对应的C/C++是什么

c++ - 如何修改Makefile以支持交叉编译?

c - 在公式中递增数组

c - 用 C 编写我自己的 Cat 函数

c - getopt_long 保留可选参数的默认值

regex - Perl 正则表达式从时间戳中提取秒/毫秒

c++ - 是否可以为 std::array 定义隐式转换运算符?

javascript - 奇怪的javascript导致错误

java - 使用正则表达式查找字符串中的所有字母