由效果产生学习的兴趣,即使失败,但至少不会中途作废。

正则表达式,语法看起来很多啊! 本文做一个简单的学习介绍:(环境:Windows 7 + Visual Studio 2010)

#include <regex>  //header

1,匹配电话号码

string tel_pattern("13([5-8])(\\d{8})");

//解释:()表示一个子表达式,a,13是开头;b,[5-8]表示这个字符介于'5'和'8'之间;c,\\转义,因为此处d有特殊含义 d{8}表示8个数字。结果:数字个数为11个,以135-138为开头。

string tel = "13512345678"; www.2cto.com

bool match = regex_match(tel,tel_pattern);

2,匹配邮件地址

string email_pattern("(\\w+)(\\.|_)?(\\w+)@(\\w+)(\\.(\\w+))+");

//解释:w+表示一个或多个单词,.|_表示.或者_,?表示有0个或者1个,+表示重复。

@前面的含义是,单词串,串之间可以有1个.或者_,也可以没有

@后面的含义是,单词串开始,后面有一个 .words或者多个

3,分隔字符串

[cpp] 
<span style="font-size:14px;">  regex str_pattern("(\\.)"); 
    string str = "www.baidu.com"; 
    sregex_token_iterator iter(str.begin(),str.end(),str_pattern,-1); 
    sregex_token_iterator end; 
    vector<string> vec; 
    while(iter != end) 
    { 
        vec.push_back(*iter++); 
        printf_s("%s \n",vec.back().c_str()); 
    } 
    printf_s("%d \n",vec.size());</span> 
总结:正则表达式用法很强大,可以完成查找、匹配、分隔操作。

重要一点:正则表达式 与 编译原理中的语法树、词法分析联系太紧了,相互之间补充理解。

初学C++正则表达式(regex)相关推荐

  1. python正则表达regex_Python 正则表达式(RegEx)

    版权所有,未经许可,禁止转载 正则表达式是组成搜索模式的字符序列. 正则表达式用于按指定的搜索模式搜索字符串. 正则表达式(RegEx)模块 Python有一个名为re的内置包,用来处理正则表达式. ...

  2. c++ regex 替换汉字_C++ - 正则表达式(regex) 替换(replace) 的 详解 及 代码

    正则表达式(regex) 替换(replace) 的 详解 及 代码 本文地址: http://blog.csdn.net/caroline_wendy/article/details/1732163 ...

  3. Java中的正则表达式 regex

    常用类解析:正则表达式 regex 前言 一.正则表达式 二.匹配规则 三.匹配任意字符 四.匹配数字 五.匹配常用字符 六.匹配空格字符 七.匹配非数字 八.重复匹配 九.正则表达式小总结 十.匹配 ...

  4. c#中regex的命名空间_C#_详解C#正则表达式Regex常用匹配,使用Regex类需要引用命名空间 - phpStudy...

    详解C#正则表达式Regex常用匹配 使用Regex类需要引用命名空间:using System.Text.RegularExpressions; 一.利用Regex类实现验证 示例1:注释的代码所起 ...

  5. C# 正则表达式 Regex类的使用

    1.检验数字的表达式 //数字Regex reg = new Regex(@"^[0-9]*$");//n位的数字Regex reg = new Regex(@"^\d{ ...

  6. Python零基础速成班-第13讲-Python正则表达式Regex

    Python零基础速成班-第13讲-Python正则表达式Regex 学习目标 正则表达式 课后作业(4必做) 友情提示:将下文中代码拷贝到JupyterNotebook中直接执行即可,部分代码需要连 ...

  7. python正则表达式——regex模块

    目录 1. 为了与re模块兼容,此模块具有2个行为 2. Unicode中不区分大小写的匹配:Case-insensitive matches 3. Flags 4. 组 5. 其他功能,如下表 参考 ...

  8. (四)boost库之正则表达式regex

    正则表达式可以为我们带来极大的方便,有了它,再也不用为此烦恼 头文件: #include <boost/regex.hpp> 1.完全匹配 std::string str("ab ...

  9. C语言正则表达式regex

    From: http://hi.baidu.com/david_jlu/blog/item/87ada1dbb9af6a60d0164eda.html 正则表达式在linux下应用非常广泛,经常使用s ...

最新文章

  1. 2.2 Spring属性注入-构造方法
  2. 建立你第一个 Outlook Add-in
  3. python 队列实现_Python Queue队列实现线程通信
  4. oracle虚拟机怎么拖到windows,如何使用Virtualbox从Windows 10拖放到Ubuntu 18 VM
  5. SQL float 保留两位小数
  6. 用python对excel进行图表操作
  7. pr如何跳到关键帧_pr怎么跟踪?pr怎么做运动跟踪怎么用?
  8. docker CEEE版本centos安装
  9. 利用 安装oracle依赖包,使用yum快速安装oracle11g依赖包
  10. 非常精美的唐诗,无与伦比哦
  11. pip20恢复官方源出现bug:confirming the ssl certificate: HTTPSConnectionPool(host=‘pypi.org‘, port=443)
  12. Flask + vue 前后端分离的 二手书App
  13. ELK日志分析系统搭建以及springboot日志发送到ELK中
  14. 2022 ICPC Gran Premio de Mexico 1ra Fecha(一)
  15. 新鲜出炉的三维动画应用领域,学3D建模好工作找不完
  16. 【2021-04-25】APP逆向之某智网加密数据
  17. 使用Calendar 计算两个日期相差天数,
  18. 区块链已成主流,BATJ纷纷加速布局
  19. 使用nid工具修改db_name和DBID
  20. DataFrame.drop_duplicates操作中的inplace参数

热门文章

  1. java mail 发件人昵称,Java使用javax.mail发送邮件 解决收件人、发件人名字乱码问题...
  2. mysql数据库检表_MYSQL数据库检查数据表和修复数据表
  3. python 多进程绑定端口_Python教程之创建多进程
  4. android组合动画还原,Android - Fragment,View动画,组合动画,属性动画
  5. php内核函数手册,深入理解PHP内核(五)函数的内部结构,深入理解内部结构
  6. 回顾一些重要的CNN改进模型(你真的了解 Convolutional Neural Networks 么)
  7. 微博收藏(机器学习探讨)(二)
  8. caffe windows学习:第一个测试程序
  9. 通俗大白话来理解TCP协议的三次握手和四次分手
  10. Java虚拟机学习(3): 类加载机制