码迷,mamicode.com
首页 > 其他好文 > 详细

正则表达式(regex)

时间:2020-07-22 15:39:59      阅读:70      评论:0      收藏:0      [点我收藏+]

标签:file   结果   col   mat   arch   字符串   _id   正则   表达式   

//regex_search()的集合是一组匹配集合,通常表示为一个smatch:
#include <iostream>
#include <fstream>
#include <string>
#include <regex>
using namespace std; 

void use()
{
    ifstream in("file.txt");    //输入文件
    if(!in) cerr << "no file\n";
    
    regex pat{R"(\w{2}\s*\d{5}(-\d{4})?)"};        //美国邮政编码模式
    
    int lineno=0;
    for(string line; getline(in,line);){
        ++lineno;
        smatch matches;            //匹配的字符串保存在这里
        if(regex_search(line,matches,pat)){
            cout << lineno << ": " << matches[0] << \n;    //完整匹配结果
            if(1<matches.size() && matches[1].matched)
                cout << "\t: " << matches[1] << \n;        //子匹配 
        } 
    } 
} 

int main()
{
    use();
    return 0;
}

----------------------------------------------------------------------------------

//regex_match的使用
bool is_identifier(const string& s)
{
    regex pat{R"([_[:alpha:]]\w*)"};      //也可写为:regex pat{"[_[:alpha:]]\\w*"}; 
    return regex_match(s,pat);
} 

 

正则表达式(regex)

标签:file   结果   col   mat   arch   字符串   _id   正则   表达式   

原文地址:https://www.cnblogs.com/lhb666aboluo/p/13359928.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!