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

网站建设费会计账务处理企业信息管理系统官网

网站建设费会计账务处理,企业信息管理系统官网,重庆网络公司产品设计,企业展示厅设计效果图C11 新增了正则表达式的标准库支持#xff0c;本文简介 C 正则表达式的使用在 C 中使用正则表达式#xff0c;和其它语言差别不大int main() {regex e(abc*);bool m regex_search(abccc, e);// 输出 yescout (m ? yes : 11 新增了正则表达式的标准库支持本文简介 C 正则表达式的使用在 C 中使用正则表达式和其它语言差别不大int main() {regex e(abc*);bool m regex_search(abccc, e);// 输出 yescout (m ? yes : no) endl; } C11 自带了 6 种正则表达式语法的支持ECMAScriptbasicextendedawkgrepegrepC11 默认使用 ECMAScript 语法这也是 6 种语法中最强大的假如想使用其他 5 种语法只需在声明 regex 对象时指定即可regex e(^a., regex_constants::grep); 假如我们不仅仅想知道一个正则表达式是否匹配一个字符串我们还想要提取出匹配的部分例如我们需要从邮箱中提取用户名和网址就需要用到 match_resultsint main() {string str(Email abc.com abc);// 等同于 match_resultsstringsmatch m; regex e(([[:w:]])([[:w:]].com));bool found regex_search(str, m, e);// m.size3, 存储了 3 个 resultcout m.size m.size() endl;/* 迭代 match_results, 输出m[0]abc.com (整个匹配)m[1]a (第1个group)m[2]bc.com (第2个group)*/for (int n0; nm.size(); n){cout m[ n ] m[n].str() endl;//等价写法 m.str(n), *(m.begin()n) }// m.prefixEmailcout m.prefix m.prefix().str() endl;// m.suffix is minecout m.suffix m.suffix().str() endl; } 假如我们想要匹配的字符串中有多个子串都可以匹配正则表达式并且我们想把这些子串全部找出来例如一个字符串中包含多个邮箱地址那么就需要用到 regex_iteratorint main() {string str(abc.com, def.com, aab.com);regex e(([[:w:]])([[:w:]].com));sregex_iterator pos(str.cbegin(), str.cend(), e); // 定义 regex_iteraror// C惯例: 默认构造的迭代器表示序列结束sregex_iterator end;/* emailabc.com, usera, domainbc.com emaildef.com, userd, domainef.com emailaabb.com, useraa, domainb.com */for (; pos!end; pos) {cout email pos-str(0) , user pos-str(1) , domain pos-str(2) endl;} } 如上我们可以看到regex_iterator 其实就是迭代字符串中所有正则表达式匹配的 match_results。除此之外C 还提供了另一种跌到器, regex_token_iterator。不同的是regex_token_iterator 迭代的是所有正则表达式匹配中的指定子表达式或迭代未匹配的子字符串int main() {string str(abc.com, def.com, aabb.com);regex e(([[:w:]])([[:w:]].com));sregex_token_iterator pos(str.cbegin(), str.cend(), e); // 定义regex_token_iteratorsregex_token_iterator end; //序列结束/*Matched: abc.comMatched: def.comMatched: aabb.com*/for (; pos!end; pos) {cout Matched: *pos endl;} } 我们可以修改 pos 的定义使它每次迭代 match_results 的第 2 个 group// 第 4 个参数表示第几个 group sregex_token_iterator pos(str.cbegin(), str.cend(), e, 2 ); 值得注意的是如果我们把这里的参数设为 -1则迭代字符串中所有不匹配正则表达式的部分相当于用正则表达式切割字符串int main() {string str(a bb cd);regex e(s); // 匹配空格// 迭代不匹配正则表达式的部分sregex_token_iterator pos(str.cbegin(), str.cend(), e, -1);sregex_token_iterator end;/*Matched: aMatched: bbMatched: cd*/for (; pos!end; pos) {cout Matched: *pos endl;} } 正则表达式还有一个常用的场景——字符串替换。C 中我们可以使用 regex_replaceint main() {string str(abc.com, def.com, aabb.com);regex e(([[:w:]])([[:w:]].com));cout regex_replace(str, e, $1 is on $2); } 输出为a is on bc.com, d is on ef.com, aa is on bb.com本文主要翻译自 Bo Qian 的 YouTube 视频C 11 Library: Regular Expression 1​youtu.beC 11 Library: Regular Expression 2 -- Submatch​youtu.beC 11 Library: Regular Expression 3 -- Iterators​youtu.be
http://www.zqtcl.cn/news/838292/

相关文章:

  • 禅城南庄网站制作做门户网站的公司
  • 网站里的图片是怎么做的同泰公司网站公司查询
  • seo怎么做网站内容wordpress文件上传失败
  • zenm自己做网站wordpress 摄影 模板
  • 网站手机页面如何做微信小程序开发平台官网登录
  • 嘉兴外贸网站制作成都网络公司最新招聘
  • 租服务器发布网站团购网站单页模板
  • 西安网站建设运维凡客精选
  • 权威网站发布平台wordpress 如何安装
  • 没有官方网站怎么做seo优化军事新闻
  • 在招聘网站做销售技巧教育培训平台
  • 网站栏目 英文做网站在哪接单
  • 湖北网络营销网站市场营销策划案
  • 政务信息系统网站建设规范上海网站开发制作公司
  • 网站公众平台建设方案湖南seo优化报价
  • 企业网站制作公司discuz 转wordpress
  • 可信网站是什么意思应用软件开发平台
  • 上海市官方网站福建省中嘉建设工程有限公司网站
  • 备案之后怎样把 放到网站上大连建设网球场价格
  • dkp网站开发今天最新新闻
  • 山东省环保厅官方网站建设项目东莞寮步网站设计
  • 网站开发可能遇到的问题附近电脑培训班位置
  • 如何查看域名以前是做什么网站的网站索引下降如何解决
  • 潜江 网站建设扬中话
  • 网站建设项目方案ppt广州建站模板平台
  • 房产部门成立网站免费seo推广软件
  • python做网站好处百度指数分析报告
  • 网站建设挣钱班级介绍网页制作模板
  • 工作室 网站建设app公司
  • 自己做的网站怎么在百度搜索到网页制作论文3000字