C++的正则封装的不丰富.只有最基础的三个主要的函数(也可能是我孤陋寡闻).要有更为丰富的功能需要自己进一步组合.

我目前只需要循环查找这个功能,并且我也不知道c++的正则支持正则的哪些功能;

代码如下,后面要用到其他的诸如替换之类的功能在来补充

#include<iostream>
#include<string>
#include<regex>
#include<Windows.h> using namespace std; int main(void)
{
string s = "The operation to complete";
regex r("\\b\\w+?\\b"); //字符串构造有点不一样.
smatch m; //是个容器. while (regex_search(s, m, r))
{
cout << m.str() << endl; s = m.suffix().str(); //关键,实现循环查找的重要步骤.
} system("pause");
return 0;
}

  输出:

封装一下简单实现类似Python中的findall的功能:

//Regular是正则表达式
//text是被匹配的文本
//函数功能是返回文本中所有被匹配的值
//此函数依赖vector库,regex库,string库
vector<string> findall(string Regular, string &text)
{
vector<string> ret;
ret.clear(); regex r(Regular);
smatch m; //是个容器.
string str=text; while (regex_search(str, m, r))
{
ret.push_back(m.str()); str = m.suffix().str(); //关键,实现循环查找的重要步骤.
//不加以判断的话可能会无限循环
//比如text的内容是"a".判别式是"\\b.*?\\b",这样就会无限循环,这是属于判别式的锅,因为*代表0-无穷个可能,然后又加了?代表0个或者1个.
if (str == text)
{
return ret;
}
}
return ret;
}

  

C++的正则的更多相关文章

  1. Javascript正则对象方法与字符串正则方法总结

    正则对象 var reg = new Regexp('abc','gi') var reg = /abc/ig 正则方法 test方法(测试某个字符串是否匹配) var str = 'abc123'; ...

  2. C#-正则,常用几种数据解析-端午快乐

    在等待几个小时就是端午节了,这里预祝各位节日快乐. 这里分享的是几个在C#中常用的正则解析数据写法,其实就是Regex类,至于正则的匹配格式,请仔细阅读正则的api文档,此处不具体说明,谢谢. 开始吧 ...

  3. Javascript 中 with 的替代方案和String 中的正则方法

    这几天在升级自己的MVVM 框架,遇到很多小问题,就在这里统一解决了. with 语法 在代码中,要执行这么一个函数 function computeExpression(exp, scope) { ...

  4. JavaScript与PHP中正则

    一.JavaScript 有个在线调试正则的工具,点击查看工具.下面的所有示例代码,都可以在codepen上查看到. 1.创建正则表达式 var re = /ab+c/; //方式一 正则表达式字面量 ...

  5. Java正则速成秘籍(一)之招式篇

    导读 正则表达式是什么?有什么用? 正则表达式(Regular Expression)是一种文本规则,可以用来校验.查找.替换与规则匹配的文本. 又爱又恨的正则 正则表达式是一个强大的文本匹配工具,但 ...

  6. Java正则速成秘籍(二)之心法篇

    导读 正则表达式是什么?有什么用? 正则表达式(Regular Expression)是一种文本规则,可以用来校验.查找.替换与规则匹配的文本. 又爱又恨的正则 正则表达式是一个强大的文本匹配工具,但 ...

  7. Java正则速成秘籍(三)之见招拆招篇

    导读 正则表达式是什么?有什么用? 正则表达式(Regular Expression)是一种文本规则,可以用来校验.查找.替换与规则匹配的文本. 又爱又恨的正则 正则表达式是一个强大的文本匹配工具,但 ...

  8. python浅谈正则的常用方法

    python浅谈正则的常用方法覆盖范围70%以上 上一次很多朋友写文字屏蔽说到要用正则表达,其实不是我不想用(我正则用得不是很多,看过我之前爬虫的都知道,我直接用BeautifulSoup的网页标签去 ...

  9. [Python基础知识]正则

    import re str4 = r"^http://qy.chinahr.com/cvm/preview\?cvid=\w{24,25}&from=sou&gtid=\w{ ...

  10. iOS中使用正则

    一.什么是正则表达式 正则表达式,又称正规表示法,是对字符串操作的一种逻辑公式.正则表达式可以检测给定的字符串是否符合我们定义的逻辑,也可以从字符串中获取我们想要的特定部分.它可以迅速地用极简单的方式 ...

随机推荐

  1. Shell脚本出现$'\r': command not found

    Centos7下执行shell脚本报错如下 [root@ip---- ~]# sh install_zabbix_agent.sh install_zabbix_agent.: $'\r': comm ...

  2. Spring Boot - AOP(面向切面)-切入点表达式

    切入点指示符用来指示切入点表达式目的,在 Spring AOP 中目前只有执行方法这一个连接点,Spring AOP 支持的 AspectJ 切入点指示符,切入点表达式可以使用 &&. ...

  3. Stripes视图框架与Struts2之间的比较

    https://blog.csdn.net/boonya/article/details/14227149 Stripes视图框架与Struts2的行为很相似,所以在这里做一个简要的对比,发现它们的优 ...

  4. SpringCloudConfig配置中心git库以及refresh刷新

    基于git库的Spring Cloud Config配置中心代码demo下载地址:https://gitlab.com/mySpringCloud/config-git SpringBoot版本: 1 ...

  5. 一个故事带你理解if __name__ == '__main__'

    如果你刚刚接触python,相信会在看别人的程序的时候会遇到if __name__ == '__main__'酱紫的语法,如果当时没看懂现在也一知半解的话,看下去,本文可以帮你解决这个问题. 大家都知 ...

  6. [UE4]抛物线指示器

    一.抛物线的有以下4中函数 二.本例使用Predict Projectile Path By TraceChannel方法. 抛物线三要素:发射位置.发射角度.发射速度. 1.Start Pos:起始 ...

  7. 理解inode如何指向block

    一个inode编号如何实现,指向n多个block块的呢? 本质: 第一步:在CentOS系统中目录/tmp下 touch {01..12} 个文件: 然后mkdir block目录 第二步:cd切换到 ...

  8. Three failed attempts of handling non-sequential data

    The Progress of Products Classification Cause now we are considering to classify the product by two ...

  9. Why Lua?

    Why Lua? 最近在很多的地方都遇到了lua这个东西,于是想一探究竟,为什么这么多的游戏前端都用了Lua脚本呢? 于是乎简单的看了一下Lua,目前总结出来了几点~ 还是先放上资源: GitHub上 ...

  10. Android学习笔记二之初始Activity

    初识Activity,跟着教程学习敲了一遍这一章的内容,下面根据目录结构总结知识点: 一.活动是什么 上篇博文中我们提到了Android四大组件,其中有一个Activity,我们将之称为活动.活动是最 ...