[TOC]

​ 在控制台程序中,用户经常需要读写程序到控制台界面,其中数据<->内核缓冲区<->控制台窗口。为了表述方便,我们直接认为数据读写到控制台上。

一、C++的正则表达式

控制台的输入常见有如下几种方式:

#include<regex>
using namespace std;
string s="https://www.baidu.com"
regex r("http(s)?://([\\w-]+\\.)+[\\w-]+(/[\\w- ./?%&=]*)?");//构建一个正则表达式规则
// 判断是否全文匹配
bool res=regex_match(s,r);
// 替换字符串中的子串
string res=regex_replace(s,r,"hi");
// 查找第一个匹配的子序列
regex_search()
// 匹配所有子串
regex_iterator()

二、匹配某些字符

控制台的输出常见有如下几种方式:

// 匹配某个固定子串
ABC$ 匹配字母ABC并且以ABC结尾的字符串
^ABC 匹配字母ABC并且以ABC开头的字符串
ABC. 匹配字母ABC和除\n外的任意一个字符
A* 匹配*前面的字符A可以出现多次,等价于ABC{0,}
A+ 匹配*前面的字符A可以出现至少1次,等价于ABC{1,}
A? 匹配*前面的字符A可以出现0次或者1次,等价于ABC{0,1}
// 匹配单个变化的字符
[ABC] //匹配字符串中的A|B|C
[^ABC] //匹配字符串中不是A|B|C的字符
[A-Z] //匹配字符串中的所有大写字母
[a-z] //匹配字符串中的所有小写字母
[0-9] //匹配字符串中的所有小写字母
// 匹配一个或多个字符
[ABC]+
ABC

###