前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >C++ 代码 获取匹配的字符串数组或替换

C++ 代码 获取匹配的字符串数组或替换

原创
作者头像
用户1503405
修改于 2021-10-08 06:09:46
修改于 2021-10-08 06:09:46
1.8K00
代码可运行
举报
文章被收录于专栏:棒棒小飞人棒棒小飞人
运行总次数:0
代码可运行
C++ 代码 获取匹配的字符串数组或替换
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include <regex>
#include <string>
   // 使用类 std::regex_iterator 来进行多次搜索.
    static std::string _strs = "... ..." ; 
    std::regex _regex("<img [^>]+>");
    std::cout << "sregex_iterator ====" << std::endl;
    auto words_begin =
        std::sregex_iterator(_strs.begin(), _strs.end(), _regex);
    auto words_end = std::sregex_iterator();
    for (std::sregex_iterator i = words_begin; i != words_end; ++i)
    {
        std::smatch match = *i;                                                 
        std::string match_str = match.str();
        std::cout << match_str << '\n';
}

// 把所有 img src 的绝对路径替换为 images 开始的相对路径.使用分组即可.
    std::regex img_regex("(<img [^>]*src=[\"']{1})([^\"']*)\\\\(images\\\\[^\"']*[\"']{1}[^>]*>)");
    std::smatch color_match;
    std::string rep = "$1$3";
    std::string tmp = std::regex_replace(kHtmlSnippet,img_regex,rep);
    std::cout << tmp << std::endl;
    
    
    获取以-成对的字符串
\w+\s*-(\s*[^,;]+)
样本:
fsd-fsdfs fds-fsdfs,werfsd-fewrwrw;fewrwer,fdf  -fdf fsdew- fd90
匹配结果:
fsd-fsdfs
fds-fsdfs
werfsd-fewrwrw
fdf  -fdf
fsdew- fd90
另一小例
[^,"]+|,,|(?:"[^,"]*"[^"]*"[^"]*)"|"(?:[^"])*"
样本: your dollors,10000, 27 years old ,,"10,000","it is "10 Grand",baby",10k
匹配结果: your dollors 10000  27 years old  ,,   "10,000"   "it is "10 Grand",baby"   10k

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验