如何在c/c++中用正则表达式
有一个信息量很大的文本文件,我想在里面找出特定的字符串,请问如何在c/c++中用正则表达式实现啊...
有一个信息量很大的文本文件,我想在里面找出特定的字符串,请问如何在c/c++中用正则表达式实现啊
展开
3个回答
2015-07-09 · 知道合伙人数码行家
可以叫我表哥
知道合伙人数码行家
向TA提问 私信TA
知道合伙人数码行家
采纳数:25897
获赞数:1464977
2010年毕业于北京化工大学北方学院计算机科学与技术专业毕业,学士学位,工程电子技术行业4年从业经验。
向TA提问 私信TA
关注
展开全部
最简单是借用c的正则表达式库,需要引入头文件<regex.h>。支持POSIX.2正则表达式标准。简单用法如:
regex_t reg; //先声明一个正则表达式体。
regcomp(®, "[a-zA-Z]*", 0); //从字符串来编译这个表达式。
regmatch_t match[2]; //用来保存匹配结果。
regexec(®, "abcedfg", 2, match, 0); //匹配字符串。
以上函数的用法可以参考GNU的文档。http://www.gnu.org/s/libc/manual/html_node/Regular-Expressions.html
此外,c++中也有自己的正则表达式库,比如boost::regex。需要先安装boost库才能使用。
regex_t reg; //先声明一个正则表达式体。
regcomp(®, "[a-zA-Z]*", 0); //从字符串来编译这个表达式。
regmatch_t match[2]; //用来保存匹配结果。
regexec(®, "abcedfg", 2, match, 0); //匹配字符串。
以上函数的用法可以参考GNU的文档。http://www.gnu.org/s/libc/manual/html_node/Regular-Expressions.html
此外,c++中也有自己的正则表达式库,比如boost::regex。需要先安装boost库才能使用。
展开全部
#include <stdio.h>
int main(){
char buffer[200];
FILE* fin = fopen("sample.txt"/*你需要的文件名*/, "r");
fscanf(fin, "%s", buffer);//读取当前第一个字符串
//读完后关闭文件
fclose(fin);
}
也可以去www.boost.org看看!
希望可以帮你的忙!也希望你的问题可以早日得到解决!
int main(){
char buffer[200];
FILE* fin = fopen("sample.txt"/*你需要的文件名*/, "r");
fscanf(fin, "%s", buffer);//读取当前第一个字符串
//读完后关闭文件
fclose(fin);
}
也可以去www.boost.org看看!
希望可以帮你的忙!也希望你的问题可以早日得到解决!
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询