【问题标题】:Removing certain characters at the beginning of string删除字符串开头的某些字符
【发布时间】:2019-11-15 22:01:35
【问题描述】:

这是用例。

我有一个包含文件夹相对路径的字符串。它的格式可能会有所不同,具体取决于它的来源(我正在处理从不同软件导出的文件)。

例如:./path/to/folder/path/to/folderpath/to/folder

我需要做的是删除字符串开头的所有字符'.''/'。当然,我可以在 for 循环中手动执行此操作,但我认为可能有某种 stl 函数完全适用于此类用例。

【问题讨论】:

  • 您标记了您的问题regex。你试过regex相关的东西吗?
  • 我不知道有什么困扰你...只需检查第一个字符是'.' 还是'/' 并基于此删除字符...以及stl 有什么与您的问题有什么关系?
  • 如果你用c++17没问题,而且你真的想用STL,那么试试std::filesystem库,你想做的可以通过创建一个std::filesystem::path p(your_path_string)然后std::filesystem::relative(p).string() 得到你需要的结果。

标签: c++ regex string stl


【解决方案1】:

我想也许有某种 stl 函数正是针对此类用例的

#include <regex>

const std::string src("./path/to/folder");
static const std::regex re("^\\.?\\/?");

const std::string result = std::regex_replace(src, re, "");

如果您需要比&lt;regex&gt; 提供的效率更高的效率,请手动执行。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-09-27
    • 2011-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多