zoukankan      html  css  js  c++  java
  • 字符串匹配——C++使用Regex

    需要#include  < regex >
     
    匹配
    regex_match ("subject", std::regex("(sub)(.*)") //结果返回true
    主要regex_match需要匹配源字符串的每个字符,这点与regex_search不同
     
    查找
    返回一个匹配项
        const regex pattern("(\w+day)");
        string weekend = "Saturday and Sunday";// the source text
        smatch result;
        bool match = regex_search(weekend, result, pattern);
        if(match){
          for(size_t i = 1; i < result.size(); ++i){
     cout << result[i] << std::endl;
          }
        }
    输出结果是Saturday
     
    匹配所有项
    const regex pattern("(\w+day)");
    string weekend = "Saturday and Sunday, but some Fridays also.";
    const sregex_token_iterator end;
    for (sregex_token_iterator i(weekend.begin(),weekend.end(), pattern); i != end ; ++i){
        cout << *i << " ";
    }
    输出结果是Saturday Sunday Friday
     
    替换
    string text = "This is a element and this a unique ID.";
    const regex pattern("(\ba (a|e|i|u|o))+");// regular expression with two capture groups
    std::string replace = "an $2"; //$2表示匹配模式串的第二个字串,即以a,e,i,o,u开头的单词
    string newtext = regex_replace(text, pattern, replace);
    cout << newtext << endl;
    输出结果是This is an element and this an unique ID.
     
  • 相关阅读:
    GAN 的推导、证明与实现。
    WGAN学习笔记
    常用损失函数积累
    交叉熵在loss函数中使用的理解
    贝叶斯决策
    极大似然估计
    gated pixelCNN。
    三叉搜索树 转载
    Rabin-Karp 字符串匹配算法
    面试题整理 转载
  • 原文地址:https://www.cnblogs.com/qionglouyuyu/p/4850777.html
Copyright © 2011-2022 走看看