C++11正则表达式初探

C++正则表达式

在此之前都没有了解过C++的正则,不过现在大多数赛事都支持C++11了,因此有必要学习一下,用于快速A签到题。

  • 所在头文件
#include<regex>
  • 正则表达式语法

    跟其他语言的正则语法基本一样,要注意的是转义需要两个\\,如匹配数字的\d应该写成\\d

  • regex使用语法
regex pattern("正则表达式");//匹配规则
smatch result;//用于存放匹配结果
string s;//待匹配的文本串

库里有三个函数供我们使用,下面逐一简单介绍:

regex_match(s,result,pattern);

该函数是全文匹配,即从文本第一个字符开始匹配,不符就匹配失败,返回false,成功则返回true

regex_search(s,result,pattern);

该函数是搜索匹配,即匹配全文中符合规则的子字符串,匹配失败返回false,成功则返回true

regex_replace(s,pattern,"用于替换的内容");

该函数用指定字符串替换文本中所有符合规则的子串

如果想要遍历一个文本串中所有的匹配结果,可以像下面这样写

while (regex_search(s,result,pattern))
{
  for (int i = 1; i < result.size(); ++i)
  {
    cout << result[i] << endl;
  }
  s=result.suffix().str();
}

result[0]表示匹配的全部内容,result[i]表示匹配内容中的第i个组(即第i个括号中的内容)

原文地址:https://www.cnblogs.com/orangee/p/9753794.html

时间: 2024-10-13 23:30:55

C++11正则表达式初探的相关文章

C++11 正则表达式库 (regex)

Source: http://cpprocks.com/wp-content/uploads/c++11-regex-cheatsheet.pdf C++11 正则表达式库 (regex),布布扣,bubuko.com

C#学习第五弹之正则表达式初探

正则表达式使用单个字符串来描述.匹配一系列符合某个句法规则的字符串.在很多文本编辑器里,正则表达式通常被用来检索.替换那些符合某个模式的文本. 许多编程语言都支持正则表达式,C#也不例外,下面让我们来初探正则表达式. 首先是元字符,即在正则表达式中具有特殊意义的一些专用字符,可以用一个或一组元字符来代替一个或一组字符,常见元字符如下: 然后是限定符,对之前的字符进行限定,常见的限定符如下: 转义字符:注意到元字符本身有可能成为被查找对象或被查找对象的一部分,于是出现了转义的概念.和C++中的转义

cocos2dx下C++11正则表达式和android下C语言正则表达式的使用--------案例密码校验

/************************************************************************/ /* 密码校验 */ /* C++11下没有问题,但是C语言是有问题的 */ /* 错误案例:^[[email protected]#$%^&*()_+`\\-={}\\[\\]:\";'<>?,.\\/]{6,20}$ 正确案例:^[][email protected]#$%^&*()_+`={}:;'<>

C++11正则表达式 ECMAScript文法

突然想写个爬虫,然后发现,如果有正则表达式,会方便些. C++11提供了Regex类.可以用来完成: 1.Match: 将整个输入拿来比对(匹配)某个正则表达式. 2.Search:查找“与正则表达式吻合”的子序列. 3.Tokenize:正则表达式作为分割器,得到分割器之前的字符串. 4.Replace:将与正则表达式吻合之的子序列替换掉 主要函数有: regex_match(),regex_search(),regex_replace(); 主要对象:sregex_iterator,sreg

1.11正则表达式基础(学习过程)

正则表达式基础 实验介绍 虽然我们这一节的标题是正则表达式,但实际这一节实验只是介绍grep,sed,awk这三个命令,而正则表达式作为这三个命令的一种使用方式(命令输出中可以包含正则表达式).正则表达式本身的内容很多,要把它说明清楚需要单独一门课程来实现,不过我们这一节中涉及到的相关内容通常也能够满足很多情况下的需求了. 想要更深入地学习使用正则表达式,在这里 正则表达式基础. 一.正则表达式 什么是正则表达式呢? 正则表达式,又称正规表示式.正规表示法.正规表达式.规则表达式.常规表示法(英

C++11 正则表达式简单运用

正则表达式(regular expression)是计算机科学中的一个概念,又称规则表达式,通常简写为regex.regexp.RE.regexps.regexes.regexen. 正则表达式是一种文本模式.正则表达式是强大.便捷.高效的文本处理工具.正则表达式本身,加上如同一门袖珍编程语言的通用模式表示法(general pattern notation),赋予使用者描述和分析文本的能力.配合上特定工具提供的额外支持,正则表达式能够添加.删除.分离.叠加.插入和修整各种类型的文本和数据. 完

Day 11 正则表达式

正则表达式 一.简介 Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配到的行打印出来.grep全称是Globally search for a Regular Expression and  print  out the line,表示全局搜索正则表达式并打印匹配结果的意思.Linux下所有用户都可以使用. 二.格式 grep [option] "pattern" FILE 三.常用选项

Python学习之正则表达式初探

正则表达式 正则表达式 (或 regexes ) 是通用的文本模式匹配的方法. Django URLconfs 允许你 使用任意的正则表达式来做强有力的URL映射,不过通常你实际上可能只需要使用很少的一 部分功能. 这里是一些基本的语法. 符号 匹配 . (dot) 任意单一字符 \d            任意一位数字 [A-Z]                        A 到 Z中任意一个字符(大写) [a-z]                         a 到 z中任意一个字符

C++11 并发指南一(C++11 多线程初探)(转)

引言 C++11 自2011年发布以来已经快两年了,之前一直没怎么关注,直到最近几个月才看了一些 C++11 的新特性,今后几篇博客我都会写一些关于 C++11 的特性,算是记录一下自己学到的东西吧,和大家共勉. 相信 Linux 程序员都用过 Pthread, 但有了 C++11 的 std::thread 以后,你可以在语言层面编写多线程程序了,直接的好处就是多线程程序的可移植性得到了很大的提高,所以作为一名 C++ 程序员,熟悉 C++11 的多线程编程方式还是很有益处的. 如果你对 C+