欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

C++:regex正则表达式

程序员文章站 2022-06-19 15:56:11
正则表达式在头文件中定义,是标准库中的一个强大工具。正则表达式是一种用于字符串处理的微型语言。尽管一开始看上去比较复杂,但一旦了解这种语言,字符串的处理就会简单得多。正则表达式适用于一些与字符串相关的操作。验证:检测输入字符串是否格式正确。决策:判断输入表示那种字符串。解析:从输入字符串中提取信息。转换:搜索子字符串,并将子字符串替换为新的格式化的子字符串。遍历:搜索所有的子字符串。符号化:根据一组分隔符将字符串分解为多个子字符串。ECMAScript:....

 正则表达式在<regex>头文件中定义,是标准库中的一个强大工具。正则表达式是一种用于字符串处理的微型语言。尽管一开始看上去比较复杂,但一旦了解这种语言,字符串的处理就会简单得多。正则表达式适用于一些与字符串相关的操作。

  • 验证:检测输入字符串是否格式正确。
  • 决策:判断输入表示那种字符串。
  • 解析:从输入字符串中提取信息。
  • 转换:搜索子字符串,并将子字符串替换为新的格式化的子字符串。
  • 遍历:搜索所有的子字符串。
  • 符号化:根据一组分隔符将字符串分解为多个子字符串。

ECMAScript:

C++包含对几种语法的支持,默认语法是ECMAScript。

  1. 锚点 ^ $
  2. 通配符 .
  3. 替代 |
  4. 分组 ()
  5. 重复 *、+、?、{…}
#include <iostream>
#include <regex>
#include <string>

int main()
{
    std::regex str_reg("(.)(ab|cd)(.)");
	std::string str_in("1cd4");

    std::smatch matchResult;

    //正则匹配
    if (std::regex_match(str_in, matchResult, str_reg))
    {
        std::cout << "Match:" << std::endl;
        //打印子表达式结果
        for (size_t i = 0; i < matchResult.size(); ++i)
        {
            std::cout << matchResult[i] << std::endl;
        }
    }
    else
    {
        std::cout << "Not Match!";
    }

	return 0;
}
kent@ubuntu:~/source/regex$ ./a.out
Match:
1cd4
1
cd
4

 

本文地址:https://blog.csdn.net/xikangsoon/article/details/107523955

相关标签: 编程 C++