为了账号安全,请及时绑定邮箱和手机立即绑定

c/c++有没有像python那样使用的正则库?

c/c++有没有像python那样使用的正则库?

慕标琳琳 2019-02-24 00:01:08
之前使用python的时候用正则匹配字符比如key:45679,key:7989,key:8797,key:13132,这段字符串混杂在一个很大的字符串里面。在py里我是patternPinId=re.compile('key:(.*?),')这样就能得到返回的45679,7989,8797,13132 然后我昨天试了c/c++的一些正则像上面的字符串按正则"key:(.*?)," 匹配之后 返回的是四组这样的数据key:45679, 那么c/c++有像python那种返回括号中匹配到的字符的正则用法吗?
查看完整描述

5 回答

?
一只甜甜圈

TA贡献1836条经验 获得超5个赞

有啊,C和C++都行

include <regex.h>

include <sys/types.h>

可以
$ man regexec

查看完整回答
反对 回复 2019-03-04
?
HUH函数

TA贡献1836条经验 获得超4个赞

C++11标准库自带regex。用起来感觉和Python差不多。
单纯看正则的话,Perl是最舒服的。

查看完整回答
反对 回复 2019-03-04
?
翻翻过去那场雪

TA贡献2065条经验 获得超14个赞

data.txt

key:45679,key:7989,key:8797,key:13132,
#include<stdio.h>

int main(int argc, char *argv[]) {    
    int a,b,c,d;
    FILE* fp = fopen("data.txt", "r");

    while (fscanf(fp, "key:%d,key:%d,key:%d,key:%d,", &a,&b,&c,&d) != EOF) {
        printf("data:%d, %d, %d, %d\n", a,b,c,d);
    }
    return 0;
}

结果:

data:45679, 7989, 8797, 13132
查看完整回答
反对 回复 2019-03-04
  • 5 回答
  • 0 关注
  • 661 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信