C++ 正则表达式提取匹配字符串文本

头文件

#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;
  }
}

相关教程

  1. https://learn.microsoft.com/zh-cn/cpp/standard-library/regex?view=msvc-170

  2. https://blog.csdn.net/asialee_bird/article/details/103420321

  3. https://blog.csdn.net/qq_28087491/article/details/107608569

  4. https://juejin.cn/post/6956864201444818951

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值