• regex_match 整个字符串是否匹配 (通过cmatch存储匹配的结果),match[0]代表整个匹配序列,match[1]代表第1个匹配后的子序列,match[2]代表第2个匹配后的子序列

代码示例:

 1    regex reg("^select ([a-zA-Z]*) from ([a-zA-Z]*) to ([a-zA-Z]*)$");
cmatch what;//匹配的词语检索出来
bool isit = regex_match("select id from admin to adminmin", what, reg);
if (isit)
{
cout << what.size() << endl;
//输出匹配的信息
for (int i = ; i < what.size(); i++)
{
cout << i << " " << what[i].first << endl;
} cout << "匹配" << endl;
}
else
{
cout << "不匹配" << endl;
}
 1   //^开头 ()组 []可供选择的集合 {}几次 $结尾 |或者
regex reg("^(1[3|4|5|7|8][0-9]{9})");
string str1;
cin >> str1;
bool isit = regex_match(str1, reg);//进行匹配,不需要返回结果
if (isit)
{
cout << "OK" << endl;
}
else
{
cout << "not OK" << endl;
}

regex_search 整个字符串进行查找判断是否含有指定数据类型

 void main()
{
//代表查找数字
regex reg("\\d+|([a-z])+|([A-Z]+)");
char str[] = "HELLO hello 1234 hello 111---134--324-@@@@";
//查找匹配的数字
bool isOK = regex_search(str, reg);
if (isOK)
{
cout << "含有指定数据类型" << endl;
}
cin.get();
}
  • regex_replace 按照正则表达式进行替换

         cmatch match;
    //代表查找数字
    regex reg("\\d+");
    char str[] = "hello 1234 hello 111---134";
    //把数字都换成12345
    cout << regex_replace(str, reg, "") << endl;
    cin.get();
  • regex_match与smatch存放正则表达式单匹配的字符串
     //日期正则表达式
    regex reg("^(\\d{4})/(0?[1-9]|1[0-2])/(0?[1-9]|[1-2][0-9]|3[0-1])$");
    string str1;
    getline(cin,str1);
    cout << str1 << endl;
    smatch m;//帮助转换
    if (regex_match(str1, m, reg))
    {
    //m[0]忽略
    int year = atoi(m[].str().c_str());//汇总全部
    int month = atoi(m[].str().c_str());//1,2,3挨个
    int day = atoi(m[].str().c_str());
    cout << "OK" << endl;
    cout << year << month << day << endl;
    }
    else
    {
    cout << "NO" << endl;
    }
  • sregex_token_iterator 根据特定字符拆分数据,并把拆分的数据存放在vector数组中
     //正则表达式拆分
    #include <iostream>
    #include <cstdlib>
    #include <regex>
    #include <string>
    #include <vector>
    using namespace std; void main()
    {
    //通过中间所出现的字符截断 前提是前后对称 []里面是截断的字符 +表示一个或多个
    regex reg("\\s*[,#;' ']+\\s*");
    string str;
    getline(cin, str);
    //迭代器,拆分字符串
    sregex_token_iterator end;
    vector<string> myv;
    // 开始 结束 正则表达式检索 -1检索结束
    for (sregex_token_iterator it(str.begin(), str.end(), reg, -); it != end; it++)
    {
    //cout << *it << endl;
    //把拆分的数据存储到vector数组中
    myv.push_back(*it);
    }
    //打印存储的结果
    for (auto i : myv)
    {
    cout << i << endl;
    } cin.get();
    }

59.C++与正则表达式的更多相关文章

  1. Java RE (正则表达式)

    正则表达式,又称规则表达式.(英语:Regular Expression,在代码中常简写为regex.regexp或RE),计算机科学的一个概念.正则表达式通常被用来检索.替换那些符合某个模式(规则) ...

  2. Android 中正则表达式工具类

    package com.example.administrator.magiclamp.utils; import java.util.regex.Pattern; /** * 校验器:利用正则表达式 ...

  3. java RE(正则表达式)

    验证姓名,邮箱,手机号,密码 import java.util.regex.Pattern; /** * 账户相关属性验证工具 * */ public class AccountValidatorUt ...

  4. 如何优雅地使用Sublime Text

    Sublime Text:一款具有代码高亮.语法提示.自动完成且反应快速的编辑器软件,不仅具有华丽的界面,还支持插件扩展机制,用她来写代码,绝对是一种享受.相比于难于上手的Vim,浮肿沉重的Eclip ...

  5. 如何优雅地使用 Sublime Text

    Sublime Text:一款具有代码高亮.语法提示.自动完成且反应快速的编辑器软件,不仅具有华丽的界面,还支持插件扩展机制,用她来写代码,绝对是一种享受.相比 于难于上手的Vim,浮肿沉重的Ecli ...

  6. 【网络资料】如何优雅地使用Sublime Text3

    如何优雅地使用Sublime Text3 Sublime Text:一款具有代码高亮.语法提示.自动完成且反应快速的编辑器软件,不仅具有华丽的界面,还支持插件扩展机制,用她来写代码,绝对是一种享受.相 ...

  7. JavaScript基本知识点整理(超实用)

      絮叨絮叨                   今天给大家分享一下这两天自己整理的JavaScript部分的笔记,下面都是我觉得比较常用的,希望能帮助到大家! 1. 导入JS的三种方式 ①在HTML ...

  8. RE validator

    package com.office.utility;   import java.util.regex.Pattern;   /**  * 校验器:利用正则表达式校验邮箱.手机号等  *  * @a ...

  9. java常用正则校验工具类

    正则常用校验工具类 import java.util.regex.Pattern; /** * @program: * @description: 校验工具类 * @author: xujingyan ...

随机推荐

  1. 基于opencv的手写数字字符识别

    摘要 本程序主要参照论文,<基于OpenCV的脱机手写字符识别技术>实现了,对于手写阿拉伯数字的识别工作.识别工作分为三大步骤:预处理,特征提取,分类识别.预处理过程主要找到图像的ROI部 ...

  2. PostgreSQL+pgpooll+Keepalived双机HA方案

    PostgreSQL+pgpooll+Keepalived双机HA方案 (注:本文档中的所有操作在没有说明的情况下都应该使用postgres用户进行操作,postgres用户没有权限的操作方可采用ro ...

  3. Map<String,String>转换json字符串

    import java.util.HashMap; import java.util.Map; import net.sf.json.JSONObject; public class testJson ...

  4. MySQL服务启动:某些服务在未由其他服务或程序使用时将自动停止

    这几天因为工作需求,需要把MySQL请出来,所以将尘封已久的MySQL进行启动.可是事与愿违,兴许是许久没有访问MySQL了,MySQL生气的不理我,并向外抛出一阵阵报错.1.其中一个是:Window ...

  5. 《2017全球人工智能人才白皮书》发布丨解读世界顶级AI牛人的秘密——腾讯研究院

    <2017全球人工智能人才白皮书>发布丨解读世界顶级AI牛人的秘密——腾讯研究院:下载链接:http://www.tisi.org/c16 这个报告写的很好,排版布局,表格,色调,内容都值 ...

  6. Linux下查看txt文档

    当我们在使用Window操作系统的时候,可能使用最多的文本格式就是txt了,可是当我们将Window平台下的txt文本文档复制到Linux平台下查看时,发现原来的中文所有变成了乱码. 没错, 引起这个 ...

  7. .ds_store是什么文件

    .ds_store是什么文件 .DS_Store是Mac OS保存文件夹的自定义属性的隐藏文件,如文件的图标位置或背景色,相当于Windows的desktop.ini. 1,禁止.DS_store生成 ...

  8. FZU--2188--过河(bfs暴力条件判断)

    过河I Time Limit: 3000MS   Memory Limit: 32768KB   64bit IO Format: %I64d & %I64u Submit Status De ...

  9. PasswordHelper 对user对象的password进行加密重设

    public class PasswordHelper { private RandomNumberGenerator randomNumberGenerator = new SecureRandom ...

  10. php 扩展

    如何利用PHP扩展函数,扩展出自己的函数等 php扩展函数有哪些zend_parse_parameters() spprintf() RETURN_STRINGL()