c++使用正则表达式提取关键字的方法

下面看下c++通过正则表达式提取关键字,代码如下所示:

string text = "岳云鹏的对象叫铁锤";
  regex pattern("(.*)的对象叫(.*)");
 smatch results;
  if (regex_match(text, results, pattern)) {
   for (auto it = results.begin(); it != results.end(); ++it)
    cout << *it << endl;
  }
  else {
   cout << "match failed: " << text << endl;
  }
  // 岳云鹏的对象叫铁锤
 // 岳云鹏
 // 铁锤

下面看下C++正则表达式提取匹配到的字符串

/*
 * 输入是789.123.456, 输出的是789
 */
void get()
{
 std::regex ip_reg("(.*)\.123\.456");
 std::smatch matchResult;
  string inputStr;
  std::getline(std::cin,inputStr);
  //正则匹配
  if (std::regex_match(inputStr,matchResult,ip_reg))
  {
   cout << "Match: ";
   //打印子表达式结果
   for (size_t i = 1; i < matchResult.size(); ++i)
   {
    cout << matchResult[i] << " ";
   }
  }
  else
  {
   cout << "Not Match!";
  }
 }

总结

以上所述是小编给大家介绍的c++使用正则表达式提取关键字的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!

时间: 2018-08-21

正则表达式简介及在C++11中的简单使用教程

正则表达式Regex(regular expression)是一种强大的描述字符序列的工具.在许多语言中都存在着正则表达式,C++11中也将正则表达式纳入了新标准的一部分,不仅如此,它还支持了6种不同的正则表达式的语法,分别是:ECMASCRIPT.basic.extended.awk.grep和egrep.其中ECMASCRIPT是默认的语法,具体使用哪种语法我们可以在构造正则表达式的时候指定. 正则表达式是一种文本模式.正则表达式是强大.便捷.高效的文本处理工具.正则表达式本身,加上如同一门

c++11中regex正则表达式示例简述

regex库中涉及到的主要类型有: 以std::string为代表的处理字符串的类型(我们知道还有存储wchar_t的wstring类.原生c式字符串const char*等等,为了简化处理仅介绍std::string类型相关的操作,当你把握住了regex的主脉络之后,想使用其他的版本只要类比就可以) std::regex类,该类型需要一个代表正则表达式的字符串和一个文法选项作为输入,当文法选项不提供时默认为ECMAScript. std::match_results类,该类用来记录匹配的结果,

C语言中的正则表达式使用示例详解

正则表达式,又称正规表示法.常规表示法(英语:Regular Expression,在代码中常简写为regex.regexp或RE).正则表达式是使用单个字符串来描述.匹配一系列符合某个句法规则的字符串. 在c语言中,用regcomp.regexec.regfree 和regerror处理正则表达式.处理正则表达式分三步: 编译正则表达式,regcomp: 匹配正则表达式,regexec: 释放正则表达式,regfree. 函数原型 /* 函数说明:Regcomp将正则表达式字符串regex编译

C++11中union的使用方法示例

前言 union即为联合,它是一种特殊的类.通过关键字union进行定义,一个union可以有多个数据成员.例如 union Token{ char cval; int ival; double dval; }; c++11中union除了继承c语言的数据共享内存之外,行为上越来越像一个类,比如成员默认是public类型. 在C++11以后,很多基础语法都进行了修正.其中 union 的行为向类对象进行了发展,在兼容原有语法定义的基础上进行了扩充: union可以拥有成员函数(包含构造函数和析构

比较全面的C 、Java、JavaScript中的正则表达式详解

什么是正则表达式? 正则表达式(Regular Expression) 就是用某种模式去匹配一类字符串的公式.如你要在一篇文章中查找第一个字是"罗"最后一个字是"浩"的三个字的姓名,即"罗 * 浩":那么"罗 * 浩"就是公式,也称作 模式(Pattern) ,这篇文章就是 要匹配的串( 或叫文本 text) .再如,你要检查输入的一个字符串是否是 126 邮箱的格式,你得制定一个规则去查检,这种规则就是正则表达式. 从入门开

ASP.NET 中的正则表达式

摘要:正则表达式是一种处理文本的有用工具.无论是验证用户输入.搜索字符串内的模式.还是以各种有效方式重新设置文本格式,正则表达式都非常有用.下载本文的源代码.引言Microsoft®.NET Framework 对正则表达式的支持是一流的,甚至在 Microsoft® ASP.NET 中也有依赖正则表达式语言的控件.本文介绍了深入学习正则表达式的基础知识和推荐内容. 本文主要面向对正则表达式知之甚少或没有使用经验,但却熟悉 ASP.NET.可借助 .NET 编程的初学者.此外,希望本文连同 re

MySQL中REGEXP正则表达式使用大全

以前我要查找数据都是使用like后来发现mysql中也有正则表达式了并且感觉性能要好于like,下面我来给大家分享一下mysql REGEXP正则表达式使用详解,希望此方法对大家有帮助. MySQL采用Henry Spencer的正则表达式实施,其目标是符合POSIX 1003.2.请参见附录C:感谢.MySQL采用了扩展的版本,以支持在SQL语句中与REGEXP操作符一起使用的模式匹配操作.请参见3.3.4.7节,"模式匹配". 在本附录中,归纳了在MySQL中可用于REGEXP操作

JS基础教程——正则表达式示例(推荐)

正则表达式的() [] {}有不同的意思. () 是为了提取匹配的字符串.表达式中有几个()就有几个相应的匹配字符串. (\s*)表示连续空格的字符串. []是定义匹配的字符范围.比如 [a-zA-Z0-9] 表示相应位置的字符要匹配英文字符和数字.[\s*]表示空格或者*号. {}一般用来表示匹配的长度,比如 \s{3} 表示匹配三个空格,\s[1,3]表示匹配一到三个空格. (0-9) 匹配 '0-9′ 本身. [0-9]* 匹配数字(注意后面有 *,可以为空)[0-9]+ 匹配数字(注意后

swift中的正则表达式小结

作为一门先进的编程语言,Swift 可以说吸收了众多其他先进语言的优点,但是有一点却是让人略微失望的,就是 Swift 至今为止并没有在语言层面上支持正则表达式. 正则表达式的用处: 判断给定的字符串是否符合某一种规则(专门用于操作字符串) - 电话号码,电子邮箱,URL... - 可以直接百度别人写好的正则 - 别人真的写好了,而且测试过了,我们可以直接用 - 要写出没有漏洞正则判断,需要大量的测试,通常最终结果非常负责 过滤筛选字符串,网络爬虫 替换文字,QQ聊天,图文混排 语法规则 使用过

数据库中使用正则表达式小结

本篇文章通过两个示例给大家介绍数据库中使用正则表达式小结,在此不多说,具体内容请看下文详解吧. 示例一: CREATE FUNCTION dbo.RegExpTest ( @source varchar(), --需要匹配的源字符串 @regexp varchar(), --正则表达式 @ignorecase bit = --是否区分大小写,默认为false ) RETURNS bit --返回结果-false,-true AS BEGIN --(成功)或非零数字(失败),是由OLE 自动化对象