如何解决有没有办法去除字符串的末尾直到到达某个字符?
我正在为自己做一个副项目,偶然发现了一个我不知道如何解决的问题。我有一个网址,为了论证起见,让我们说 https://stackoverflow.com/xyz/abc。我正在尝试去除 url 的末尾,以便只剩下 https://stackoverflow.com/xyz/。
最初我尝试使用 strip 函数并指定要删除的长度/位置,但对于我正在使用的其他 url,它的长度不同。 (即 URL 1 = /xyz/abc,URL 2 = /xyz/abcd))
是否有任何建议可以实现这一点,我研究了在 Python 中使用正则表达式操作,但不确定如何将其应用于此用例。理想情况下,我想编写一个函数,该函数将从字符串的末尾开始并去除所有字符,直到到达第一个 '/'。任何建议将不胜感激。
谢谢
解决方法
为什么不直接使用从末尾开始的 rfind
?
>>> string = 'https://stackoverflow.com/xyz/abc'
>>> string = string[:string.rfind('/')+1]
>>> print(string)
'https://stackoverflow.com/xyz/'
如果您也不想要该字符(在本例中为 /
),只需删除 +1
。
但是请记住,这仅在字符串实际包含您要查找的字符时才有效。 如果您想防止这种情况发生,则必须使用以下内容:
string = 'https://stackoverflow.com/xyz/abc'
idx = string.rfind('/')
if(idx != -1):
string = string[:idx+1]
除非,很明显,您确实希望以空字符串结尾,以防找不到该字符。 那么第一个例子工作得很好。
,如果你不想使用正则表达式,你可以将 split 和 join() 结合起来。
lol = 'https://stackoverflow.com/xyz/abc'
splt= lol.split('/')[:-1]
'/'.join(splt)
输出
'https://stackoverflow.com/xyz'
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。