• 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();
    }

最新文章

  1. Office2013插件开发Outlook篇(2)-- Ribbon
  2. 【poj1739】 Tony&#39;s Tour
  3. GENERATED_UCLASS_BODY 和 GENERATED_BODY 区别
  4. base64编解码实现
  5. Aspose.Cells 导入导出EXCEL(转)
  6. 简析LIVE555中的延时队列
  7. SQL学习之高级数据过滤
  8. 职业定位(Web前端、后台、PC端)
  9. android开发之-查看、编辑手机sqlite数据库文件-实测
  10. 判断点在多边形内算法的C++实现
  11. CentOS配置apache多站点设置
  12. RabbitMQ 在 web 页面 创建 exchange, queue, routing key
  13. uva-993-贪心
  14. 谷歌浏览器怎么FQ(一)(想使用谷歌浏览器应用商城的小伙伴这边看)
  15. jQuery UI 中Tabs Ajax载入时出现Http 304的问题
  16. easyDialog参数配置说明
  17. 在 ServiceModel 客户端配置部分中,找不到引用协定“myservice.Service1Soap”的默认终结点元素。这可能是因为未找到应用程序的配置文件,或者是因为客户端元素中找不到与此协定匹配的终结点元素。
  18. 《DSP using MATLAB》示例Example6.2
  19. Linux 运维工程师学习成长路线上要经历哪四个阶段?
  20. ftp获取远程Pdf文件

热门文章

  1. java9新特性-1-概述
  2. codeforces 404 B Marathon【fmod对浮点数取余】
  3. iOS开发——NSString小结
  4. 通俗易懂的Git使用入门教程
  5. 欢迎访问微先锋vXianFeng官方博客
  6. jumpserver 安装python 报错
  7. gcc 生成动态链接库
  8. js获取css
  9. HDU 1520 Anniversary party(DFS或树形DP)
  10. hdoj--3123--GCC(技巧阶乘取余)