使用 boost 字符串查找最后一次出现

Posted

技术标签:

【中文标题】使用 boost 字符串查找最后一次出现【英文标题】:finding last occurrence using boost string 【发布时间】:2012-05-11 09:14:09 【问题描述】:

如何使用 boost 获得类似的功能

  int idx = md.filepath.lastIndexOf('/');                                 
      md.title = md.filepath.right(md.filepath.length() - idx -1);            
      md.title = md.title.left(md.title.length() - 4);      

上面的代码(基于QT)找到没有扩展名的文件名,md是一个对象,文件路径,标题是QString。我浏览了 boost 的字符串方法,例如 find_last,但它返回 iterator_range。我是新手,在此先感谢。

【问题讨论】:

【参考方案1】:

如果您只想解析文件名,那么最好使用boost::filesystem::path 类。特别是以下方法:

path filename() const;

path stem() const;

path extension() const;

该类提供与std::stringstd::wstring 之间的转换。

【讨论】:

感谢您的回复。我正在寻找一种方法来获取没有扩展名的文件名。例如文件路径:/home/user/file.ext。我只想要'file'而不是'file.ext' 这就是stem 函数为您提供的。

以上是关于使用 boost 字符串查找最后一次出现的主要内容,如果未能解决你的问题,请参考以下文章

查找字符串中子字符串最后一次出现的索引

MYSQL:查找字符串中字符的最后一次出现

如何在PostgreSQL中的字符串中查找特定字符的第一次和最后一次出现

XSLT:查找字符串中的最后一次出现

strrchr — 查找指定字符在字符串中的最后一次出现

strrchr — 查找指定字符在字符串中的最后一次出现