头文件
#inlcude <regex>
常用相关成员
成员 |
作用 |
std::regex |
创建一个regex实例,参数可以为pattern |
std::regex_match |
用于匹配字符串和正则表达式,有很多不同的重载形式。 最简单的一个形式就是传入 std::string 以及一个 std::regex 进行匹配, 当匹配成功时,会返回 true,否则返回 false |
std::regex_search |
寻找第一个与正则表达式匹配的子序列,当匹配成功时,会返回 true,否则返回 false |
std::regex_replace |
替换匹配,即可以将符合匹配规则的子字符串替换为其他字符串。要求输入一个正则表达式,以及一个用于替换匹配子字符串的格式化字符串。这个格式化字符串可以通过转义序列引用匹配子字符串中的部分内容 |
std::sregex_iterator |
迭代器适配器,调用regex_search遍历string中所有匹配的子串 |
std::match_results |
包含一系列子匹配项。 |
std::smatch |
匹配结果。 smatch 对应于 string |
std::wsmatch |
匹配结果。 wsmatch 对应于 wstring |
std::cmatch |
匹配结果。 cmatch 对应于 char* |
std::regex_error |
该类描述一个异常对象,引发该异常的目的是为报告一个构造中的错误或 basic_regex 对象的使用错误。 |
代码示例
#include <iostream>
#include <string>
#include <regex>
int main()
{
std::string a = "<ticket-url><![CDATA[http://121.8.177.212:7001/ticket.cgi?wlanuserip=172.17.153.124&wlanacip=1.1.1.1&portal_node=http://125.88.59.131:10002]]></ticket-url>";
std::smatch results;
if (std::regex_search(a, results, std::regex("<ticket-url><!\\[CDATA\\[(.*)\\]\\]></ticket-url>")))
{
std::cout << results[1].str() << std::endl;
}
}
相关教程
-
https://learn.microsoft.com/zh-cn/cpp/standard-library/regex?view=msvc-170
-
https://blog.csdn.net/asialee_bird/article/details/103420321
-
https://blog.csdn.net/qq_28087491/article/details/107608569
-
https://juejin.cn/post/6956864201444818951