replace boost regex with std

This commit is contained in:
Albert S. 2020-03-18 22:00:15 +01:00
parent 71bfa56e3b
commit 5df89f0491
4 changed files with 12 additions and 12 deletions

View File

@ -81,7 +81,7 @@ std::string Parser::extractCommand(std::string cmdname, std::string content) con
} }
return ""; return "";
} }
std::string Parser::processLink(const PageDao &pageDao, UrlProvider &urlProvider, boost::smatch &match) const std::string Parser::processLink(const PageDao &pageDao, UrlProvider &urlProvider, std::smatch &match) const
{ {
std::string linktag = match.str(1); std::string linktag = match.str(1);
std::string inside = match.str(2); std::string inside = match.str(2);
@ -120,8 +120,8 @@ std::string Parser::parse(const PageDao &pagedao, UrlProvider &provider, std::st
{ {
std::string result; std::string result;
// we don't care about commands, but we nevertheless replace them with empty strings // we don't care about commands, but we nevertheless replace them with empty strings
boost::regex tagfinder(R"(\[(b|i|u|li||ul|ol|link|wikilink|h\d|cmd:rename|cmd:redirect)*?\]((\s|\S)*?)\[/\1])"); std::regex tagfinder(R"(\[(b|i|u|li||ul|ol|link|wikilink|h\d|cmd:rename|cmd:redirect)*?\]((\s|\S)*?)\[/\1])");
result = utils::regex_callback_replacer(tagfinder, content, [&](boost::smatch &match) { result = utils::regex_callback_replacer(tagfinder, content, [&](std::smatch &match) {
std::string tag = match.str(1); std::string tag = match.str(1);
std::string content = match.str(2); std::string content = match.str(2);
std::string justreplace[] = {"b", "i", "u", "ul", "li", "ol"}; std::string justreplace[] = {"b", "i", "u", "ul", "li", "ol"};

View File

@ -6,7 +6,7 @@
class Parser : public IParser class Parser : public IParser
{ {
private: private:
std::string processLink(const PageDao &pageDao, UrlProvider &urlProvider, boost::smatch &match) const; std::string processLink(const PageDao &pageDao, UrlProvider &urlProvider, std::smatch &match) const;
public: public:
std::string extractCommand(std::string cmdname, std::string content) const; std::string extractCommand(std::string cmdname, std::string content) const;

View File

@ -135,16 +135,16 @@ std::string utils::readCompleteFile(std::string_view filepath)
return content; return content;
} }
std::string utils::regex_callback_replacer(boost::regex regex, const std::string &input, std::string utils::regex_callback_replacer(std::regex regex, const std::string &input,
std::function<std::string(boost::smatch &)> callback) std::function<std::string(std::smatch &)> callback)
{ {
std::string result; std::string result;
auto tagsbegin = boost::sregex_iterator(input.begin(), input.end(), regex); auto tagsbegin = std::sregex_iterator(input.begin(), input.end(), regex);
auto tagsend = boost::sregex_iterator(); auto tagsend = std::sregex_iterator();
auto matchbegin = 0; auto matchbegin = 0;
for(boost::sregex_iterator i = tagsbegin; i != tagsend; ++i) for(std::sregex_iterator i = tagsbegin; i != tagsend; ++i)
{ {
boost::smatch match = *i; std::smatch match = *i;
auto matchlength = match.length(0); auto matchlength = match.length(0);
auto matchpos = match.position(); auto matchpos = match.position();

View File

@ -58,8 +58,8 @@ template <class T, class U> std::vector<U> getAll(std::multimap<T, U> map, T key
return result; return result;
} }
std::string regex_callback_replacer(boost::regex regex, const std::string &input, std::string regex_callback_replacer(std::regex regex, const std::string &input,
std::function<std::string(boost::smatch &)> callback); std::function<std::string(std::smatch &)> callback);
std::string readCompleteFile(std::string_view filepath); std::string readCompleteFile(std::string_view filepath);