小编use*_*389的帖子

C++提升正则表达式替换条件

语境:

我目前正在用C++编写日期格式库.例如.该库接收格式化字符串,例如:dddd, mmmm d, dddd yyyy并生成Tuesday, December 26, Tuesday 2016给定年份的结果:2016年,月份:12,日期:26(dddd代表工作日,d代表数字的日期,mmmm代表月份,yyyy代表年份).

我想通过使用来实现这一目标boost::regex_replace.

我尝试过的:

使用Javascript


javascript我可以很容易地做实现这一目标:

var pattern = 'dddd, mmmm d, yyyy';
pattern.replace(/(dddd)|(d)|(mmmm)|(yyyy)/gi, function (dddd, d, mmmm, yyyy){
    if (dddd) {
        return 'Tuesday';
    }

    if (d) {
        return '26'
    }

    if (mmmm) {
        return 'December';
    }

    if (yyyy) {
       return '2016';
    }
    return '';
}
Run Code Online (Sandbox Code Playgroud)

C++


boost::regex regex1("(dddd)");
boost::regex regex2("(d)");
boost::regex regex3("(mmmm)");
boost::regex regex4("(yyyy)");
boost::smatch …
Run Code Online (Sandbox Code Playgroud)

c++ regex boost

3
推荐指数
1
解决办法
576
查看次数

标签 统计

boost ×1

c++ ×1

regex ×1