#include <iostream>
#include <string>
#include <regex>
using namespace std;
int main() {
// your code goes here
std::string inputUrl = "this.com/(mine)/(do)";
std::string replacewith = "found";
auto startBracePos = inputUrl.find("(");
auto closedBracePos = inputUrl.find(")");
while(std::string::npos != startBracePos && std::string::npos != closedBracePos)
{
const std::string patternToReplace = inputUrl.substr(startBracePos + 1, closedBracePos-startBracePos-1);
std::regex toReplace("\\b(\\(" + patternToReplace + "\\))([^ ]*)");
inputUrl = std::regex_replace(inputUrl, toReplace, replacewith + "$2");
startBracePos = inputUrl.find("(");
closedBracePos = inputUrl.find(")");
}
cout << inputUrl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgojaW5jbHVkZSA8cmVnZXg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgbWFpbigpIHsKCS8vIHlvdXIgY29kZSBnb2VzIGhlcmUKCXN0ZDo6c3RyaW5nIGlucHV0VXJsID0gInRoaXMuY29tLyhtaW5lKS8oZG8pIjsKCXN0ZDo6c3RyaW5nIHJlcGxhY2V3aXRoID0gImZvdW5kIjsKCWF1dG8gc3RhcnRCcmFjZVBvcyA9IGlucHV0VXJsLmZpbmQoIigiKTsKICAgICAgICBhdXRvIGNsb3NlZEJyYWNlUG9zID0gaW5wdXRVcmwuZmluZCgiKSIpOwogICAgICAgIHdoaWxlKHN0ZDo6c3RyaW5nOjpucG9zICE9IHN0YXJ0QnJhY2VQb3MgJiYgc3RkOjpzdHJpbmc6Om5wb3MgIT0gY2xvc2VkQnJhY2VQb3MpCiAgICAgICAgewoJY29uc3Qgc3RkOjpzdHJpbmcgcGF0dGVyblRvUmVwbGFjZSA9IGlucHV0VXJsLnN1YnN0cihzdGFydEJyYWNlUG9zICsgMSwgY2xvc2VkQnJhY2VQb3Mtc3RhcnRCcmFjZVBvcy0xKTsKICAgICAgICAgICAgICAgIHN0ZDo6cmVnZXggdG9SZXBsYWNlKCJcXGIoXFwoIiArIHBhdHRlcm5Ub1JlcGxhY2UgKyAiXFwpKShbXiBdKikiKTsKICAgICAgICAgICAgICAgIGlucHV0VXJsID0gc3RkOjpyZWdleF9yZXBsYWNlKGlucHV0VXJsLCB0b1JlcGxhY2UsIHJlcGxhY2V3aXRoICsgIiQyIik7CiAgICAgICAgICAgIHN0YXJ0QnJhY2VQb3MgPSBpbnB1dFVybC5maW5kKCIoIik7CiAgICAgICAgY2xvc2VkQnJhY2VQb3MgPSBpbnB1dFVybC5maW5kKCIpIik7CiAgICAgICAgfQogICAgICAgIGNvdXQgPDwgaW5wdXRVcmw7CglyZXR1cm4gMDsKfQ==