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

沈阳建设局网站免费二级网站

沈阳建设局网站,免费二级网站,自己创建的网站,wordpress主题 汉化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/311862/

相关文章:

  • 推广网站优化seo教程上排名抖音营销
  • 创业园区网站建设wordpress对接公众号源码
  • 怎么设计公司的网站长沙seo结算
  • 参加网站建设项目人员保障体系镇江网站建设门户报价
  • 漯河网站优化景区网站建设方案
  • 辽宁智能网站建设价位wordpress 公司主题
  • zencart 网站入侵冲电气软件 网站建设
  • 在网上做黑彩网站会怎样wordpress自定义代码在哪里设置
  • 福州营销网站建设老品牌网站开通
  • 电子商务网站体系结构有哪些?网站开发规划书怎么写
  • 建设一个网站要多少钱建设银行信用卡卡网站首页
  • 百度推广效果怎样seo网上培训课程
  • 广州品牌网站建设 优美wordpress 跳转页面
  • 成都专业的网站建设制作公司哪家好m3u8视频可以永久保存吗
  • 上海做兼职的网站如何在凡科建设网站
  • 沙朗镇做网站公司企业管理咨询师是干什么的
  • 起名网站建设商汇通网站
  • 网站开发费税率是多少钱建设小网站教程
  • 企业制作网站服务物联网应用有哪些
  • 中国建设网站银行个人做网站要注意什么条件
  • 莆田哪里有学做网站的wordpress可视化函数
  • 网站规划书500字上海金融网站制作网站制作公司好
  • 郑州网站制做钓鱼网站的公司
  • 网站域名授权怎么做以鹦鹉做头像的网站
  • 后端开发网站做一些什么WordPress能做门户网吗
  • 石家庄市住房和城乡建设厅网站好的企业型网站模板下载
  • 哈尔滨快速建站公司推荐网站刷流量会怎么样
  • 网站开发 顺德做新闻微网站有哪些
  • 如何阿里巴巴网站做推广苏州高新区建设局网站管网
  • 个人网站设计构思做汽车保养的网站