首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >c++ regex: MS VS 2013输出与在线"c++ 2014实时代码“输出不同

c++ regex: MS VS 2013输出与在线"c++ 2014实时代码“输出不同
EN

Stack Overflow用户
提问于 2015-05-01 18:16:53
回答 1查看 52关注 0票数 1

编辑:没关系。现在起作用了。谁知道呢。我的头撞到墙上了。

在2013中运行以下代码时,它将无法工作,而原始字符串将未经修改而打印出来。使用"C++ 2014“在线运行代码时,它是正确的,'*‘是在')’和‘9’之间添加的到底怎么回事?

实时代码可在ideone.com/2mq4u3上使用。

代码语言:javascript
复制
std::string ss ("1 + (3+2)9 - 2 ");
std::regex ee ("(\\)\\d)([^ ])");

std::string result;
std::regex_replace (std::back_inserter(result), ss.begin(), ss.end(), ee, ")*$1");
std::cout << result;

实时代码输出:1 + (3+2)*9 - 2

2013年产出:1 + (3+2)9 - 2

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-01 18:37:22

此代码在Visual中运行:

代码语言:javascript
复制
std::string ss ("1 + (3+2)9 - 2 ");
std::regex ee ("\\)(\\d)");

std::string result;
std::regex_replace (std::back_inserter(result), ss.begin(), ss.end(), ee, ")*$1");
std::cout << result;

控制台窗口:

实际上,你可以用:

代码语言:javascript
复制
std::regex ee("\\)(\\d)");
std::string result = std::regex_replace (ss, ee, ")*$1");

您将得到相同的输出。

以下是我所拥有的包括:

代码语言:javascript
复制
#include "stdafx.h"
#include <iostream>
#include <string>
#include <regex>
using namespace std;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29992601

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档