C++正则表达式的初步使用
2021-05-05 04:29
标签:获取元素 src ace alt script ons 函数 include size 正则表达式(Regular Expressions),又被称为regex、regexp 或 RE,是一种十分简便、灵活的文本处理工具。它可以用来精确地找出某文本中匹配某种指定规则的内容。从C++11开始也将正则表达式纳入了新标准的一部分 。 本篇博客不涉及正则表达式语法的基本内容,如果你对正则表达式不了解,可以访问这个链接获得帮助。 C++11标准支持正则表达式后,使用正则表达式查找、提取、替换字符串就无需使用第三方开源库。 使用正则表达式包含头文件的 regex,其主要包含三个类(regex、smatch、ssub_match)和三个API(regex_search()、regex_match()、regex_replace()),基本可以满足使用的要求,其它都只是变种而已。 类regex,用来存放正则表达式,其实就是一个字符串,只需关心构造函数,其需要一个字符串作为参数进行对象构造。正则表达式语法遵循ECMAScript标准。 类smatch,用来存放查找、提取操作的结果,其实就是一个ssub_match的数组,正则表达式语法支持使用括号来获得某个子匹配,所以匹配结果会有多个,第一个存完整匹配结果,其它存正则表达式指定的子匹配。通过size()获取数组大小,操作符[]指定下标获取元素,也可以通过迭代器begin()、end()来遍历数组。prefix()和suffix()是获取查找结果前面和后面的字符串,比如“I am a good boy”查找am关键词,prefix()就是“I ”,suffix()就是“ a good boy”。 类ssub_match,用来存放某个匹配,其实就是一个字符串,其重载了操作符string(),所以可以当string对象来使用,length()返回匹配内容的长度,str()返回匹配的内容。 查找字符串使用regex_search() API,其有两个版本: 第1个版本简单判断是否找到,指定搜索字符串和查找正则表达式 第2个版本除了判断是否找到外,还可以指定smatch对象获取查找结果。 匹配字符串使用regex_match() API,其跟regex_search()区别在于前者是完全匹配不能有冗余的字符,后者可以有冗余字符。比如字符串 subsentence,对于正则表达式sub来说,regex_match()是失败的,因为尾部sentence没有被匹配到,regex_search()是成功的。其函数原型与regex_search()一样。 替换字符串使用regex_replace() API 第一、二参数与regex_search一样,第三个参数要替换的内容,字符串里面支持使用$符号后面加数字,用来表示第几个子匹配的内容。 下面代码示例演示如何使用C++11的regex API,理解透该示例代码,你就基本掌握了其使用方法。 https://www.runoob.com/regexp/regexp-syntax.html https://chenxiaowei.gitbook.io/c-17-stl-cook-book/chapter7-0-chinese/chapter7-12-chinese https://blog.csdn.net/asialee_bird/article/details/103420321#1%E3%80%81regex%E5%BA%93%E7%BB%84%E4%BB%B6%E4%BD%BF%E7%94%A8%E5%87%86%E5%A4%87 C++正则表达式的初步使用 标签:获取元素 src ace alt script ons 函数 include size 原文地址:https://www.cnblogs.com/RioTian/p/13193266.htmlbool regex_search(string s, regex e);
bool regex_search(string s, smatch m, regex e);
string regex_replace(string s, regex e, string fmt);
#include
参考
上一篇:Java学习(九)