【发布时间】:2019-12-24 05:24:28
【问题描述】:
我有一个字符串 (URL),我知道其中的一部分,但不是全部。我想删除一些字符串,但字符串的长度可能不同,所以我不能使用<string> 中的erase() 函数。
我可能使用的示例 URL:
https://github.com/username/repo-name
解析后,我想只剩下repo-name
我知道我可以在 shell 中使用 sed 命令轻松做到这一点:
echo "https://github.com/username/repo-name" | sed 's/.*\///'
理想情况下,我想要一些我可以变成一个函数的东西,所以我可以做这样的事情:
string substring = sed("s/.*\///",var);
请记住,我确实不知道要删除的完整字符串。对于我显示的 URL,我想要之前的所有内容,包括最后的“/”,但是,用户名可能会更改。所以据我了解,我不能使用诸如erase() 或rfind() 之类的东西。
编辑
我正在解析的所有 URL 都是 GitHub URL,因此它们都将与此类似,将进入的程序的另一部分将确保它们都遵循相同的语法。
【问题讨论】:
-
打开你的 C++ 书籍到解释你可以用
std::string做什么的那一章,并阅读rfind方法做什么的描述。 -
我没有 C++ 书籍,但我会查一下。谢谢。