标签:转义 正则表达式 font 文件 mat 支持 search class 括号
在此之前都没有了解过C++的正则,不过现在大多数赛事都支持C++11了,因此有必要学习一下,用于快速A签到题。
#include<regex>
\\
,如匹配数字的\d
应该写成\\d
;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个括号中的内容)
标签:转义 正则表达式 font 文件 mat 支持 search class 括号
原文地址:https://www.cnblogs.com/orangee/p/9753794.html