C++:regex正则表达式
程序员文章站
2022-03-07 21:50:07
正则表达式在头文件中定义,是标准库中的一个强大工具。正则表达式是一种用于字符串处理的微型语言。尽管一开始看上去比较复杂,但一旦了解这种语言,字符串的处理就会简单得多。正则表达式适用于一些与字符串相关的操作。验证:检测输入字符串是否格式正确。决策:判断输入表示那种字符串。解析:从输入字符串中提取信息。转换:搜索子字符串,并将子字符串替换为新的格式化的子字符串。遍历:搜索所有的子字符串。符号化:根据一组分隔符将字符串分解为多个子字符串。ECMAScript:....
正则表达式在<regex>头文件中定义,是标准库中的一个强大工具。正则表达式是一种用于字符串处理的微型语言。尽管一开始看上去比较复杂,但一旦了解这种语言,字符串的处理就会简单得多。正则表达式适用于一些与字符串相关的操作。
- 验证:检测输入字符串是否格式正确。
- 决策:判断输入表示那种字符串。
- 解析:从输入字符串中提取信息。
- 转换:搜索子字符串,并将子字符串替换为新的格式化的子字符串。
- 遍历:搜索所有的子字符串。
- 符号化:根据一组分隔符将字符串分解为多个子字符串。
ECMAScript:
C++包含对几种语法的支持,默认语法是ECMAScript。
- 锚点 ^ $
- 通配符 .
- 替代 |
- 分组 ()
- 重复 *、+、?、{…}
#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
上一篇: 适合新手练习的SSM学生管理系统