当前位置: 首页 > news >正文

网站建设捌金手指专业9中国光伏企业排行榜

网站建设捌金手指专业9,中国光伏企业排行榜,中小企业网络,黄页网站软件应用大全由于C语言的正则表达式API相对比较简易.默认API只有regcomp/regerror/regexec/regfree这些函数.相对于其他的高级语言中正则表达式所所能实现的功能(如:查找/替换)有所欠缺.所以想着自己写下一些需要的函数以备后续需要使用. #ifndef _E_REGEX_INCLUDE #define _E_REGEX_INCLU…

由于C语言的正则表达式API相对比较简易.默认API只有regcomp/regerror/regexec/regfree这些函数.相对于其他的高级语言中正则表达式所所能实现的功能(如:查找/替换)有所欠缺.所以想着自己写下一些需要的函数以备后续需要使用.

#ifndef _E_REGEX_INCLUDE
#define _E_REGEX_INCLUDE
#include <regex.h>
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#include <stdbool.h>typedef int errno_t;static size_t position = 0;//functions prototype
char* regnext(regex_t* regex,char* content);
void _r_release(void);
bool regreplace(regex_t* regex,char** content,char* replacement);
void regreplaceAll(regex_t* regex,char** content,char* replacement);int main(void){char* content = (char*)"sjdlf12323ldjslfjsjf133334";char* pattern = (char*)"([[:digit:]][[:digit:]])\\1";regex_t regex;errno_t state = regcomp(&regex,pattern,REG_EXTENDED);if(state){char* errbuf = calloc(20,sizeof(char));regerror(state,&regex,errbuf,20);fprintf(stderr,"Regex:%s compile failed.\n""Reason: %s\n",pattern,errbuf);free(errbuf);regfree(&regex);exit(EXIT_FAILURE);}printf("content: %s\n",content);char* replacement = (char*)"";regreplaceAll(&regex,&content,replacement);printf("content: %s\n",content);regfree(&regex);
}//find next match
char* regnext(regex_t* regex,char* content){regmatch_t matches[regex->re_nsub + 1];errno_t state = regexec(regex,content,regex->re_nsub + 1,matches,0);if(state == REG_NOMATCH){_r_release();return NULL;}char* reval = (char*)calloc(matches[0].rm_eo - matches[0].rm_so + 1,sizeof(char));memcpy(reval,content + position + matches[0].rm_so,matches[0].rm_eo - matches[0].rm_so);position += matches[0].rm_eo;return reval;
}//replace first
bool regreplace(regex_t* regex,char** content,char* replacement){regmatch_t matches[regex->re_nsub + 1];errno_t state = regexec(regex,*content,regex->re_nsub + 1,matches,0);if(state == REG_NOMATCH){return false;}char* newContent = (char*)calloc(strlen(*content) + strlen(replacement) - (matches[0].rm_eo - matches[0].rm_so),sizeof(char));size_t head = matches[0].rm_so;size_t middle = strlen(replacement);size_t end = strlen(*content) - matches[0].rm_eo;memcpy(newContent,*content,head);memcpy(newContent + head,replacement,middle);memcpy(newContent + head + middle,*content + matches[0].rm_eo,end);*content = newContent;return true;
}//replace all
void regreplaceAll(regex_t* regex,char** content,char* replacement){for(;regreplace(regex,content,replacement););
}void _r_release(void){position = 0;
}#endif

http://www.yayakq.cn/news/602455/

相关文章:

  • 班级网站建设模板网站建设方案哪家好 推荐
  • 游戏网站logo制作做二手车那个网站会员性价比高
  • 集宁有做蒙古黑石材网站的嘛东莞没有网站的公司
  • 烟台网站建设技术托管oss可以做网站根目录吗
  • 做一个网站得多少钱wordpress自适应手机主题
  • 重庆拓达建设集团网站移动端网站开发项目报告
  • 网站建设目的意义如何进行电子商务网站建设
  • 网站风险怎么解决方案班级优化大师是干什么用的
  • 正规营销型网站定制怎么开始做网站
  • 湖南网站建设价格费用低成本做网站 白之家
  • 海南省城乡建设厅网站首页浙江建设网一官方网站
  • 站长工具推荐seo综合查询域名注册用个人还是公司
  • 浙江华纳建设有限公司网站打字赚钱一单一结app
  • 杭州网站排名seodede减肥网站模板
  • 免费建立自己的网站空间互联网营销师报名入口官网
  • 临沂网络网站建设企业名称禁限用规则
  • 建设网站网站企业做窗帘的网站
  • 北京通州马桥网站建设外贸网站建设解决方案
  • 深圳制作网站推荐微信如何做有趣的短视频网站
  • 南皮做网站郑州十大网站建设公司
  • 国外建设工程招聘信息网站有没有专门做帽子的网站
  • 网站备案包括空间内容吗聊城网站建设报价
  • 免费的网站模板下载建设一个网站需要的条件
  • 短视频素材下载网站无水印xwiki做的网站
  • 邯郸网站设计哪家好南京前十名传媒广告公司
  • 常州网站建设报价ui素材网站
  • 永久一级传奇网站网站建设开发教程视频
  • 网站关键词推广方案网站seo其应用
  • 好上手的做海报网站互动平台抽手机
  • 数据管理系统网站模板重庆工程信息网官网首页