Python 有没有办法去掉字符串的结尾,直到到达某个字符?
我正在为自己做一个附带项目,偶然发现了一个我不知道如何解决的问题。我有一个url,比如说。我正试图剥离url的结尾,这样我就只剩下了 最初我尝试使用strip函数并指定要删除的长度/位置,但对于我正在使用的其他url,它的长度不同。(即URL 1=/xyz/abc,URL 2=/xyz/abcd)) 对于实现这一点有什么建议吗?我研究了在Python中使用正则表达式操作,但不确定如何将其应用到这个用例中。理想情况下,我想编写一个函数,从字符串的末尾开始,去掉所有字符,直到到达第一个“/”为止。如有任何建议,将不胜感激Python 有没有办法去掉字符串的结尾,直到到达某个字符?,python,python-3.x,strip,re,Python,Python 3.x,Strip,Re,我正在为自己做一个附带项目,偶然发现了一个我不知道如何解决的问题。我有一个url,比如说。我正试图剥离url的结尾,这样我就只剩下了 最初我尝试使用strip函数并指定要删除的长度/位置,但对于我正在使用的其他url,它的长度不同。(即URL 1=/xyz/abc,URL 2=/xyz/abcd)) 对于实现这一点有什么建议吗?我研究了在Python中使用正则表达式操作,但不确定如何将其应用到这个用例中。理想情况下,我想编写一个函数,从字符串的末尾开始,去掉所有字符,直到到达第一个“/”为止。如
谢谢如果您不想使用regex,您可以将split和join()组合起来 输出
'https://stackoverflow.com/xyz'
如果不想使用正则表达式,可以将split和join()组合起来 输出
'https://stackoverflow.com/xyz'
为什么不直接使用从末尾开始的
rfind
>>string=>https://stackoverflow.com/xyz/abc'
>>>string=string[:string.rfind('/')+1]
>>>打印(字符串)
'https://stackoverflow.com/xyz/'
如果您也不需要该字符(本例中为/
),只需删除+1
但是请记住,只有当字符串实际包含您要查找的字符时,这才有效。
如果要防止出现这种情况,必须使用以下方法:
string='1〕https://stackoverflow.com/xyz/abc'
idx=string.rfind(“/”)
如果(idx!=-1):
字符串=字符串[:idx+1]
除非,很明显,您希望在找不到字符的情况下得到一个空字符串。
那么第一个示例就可以了。为什么不使用从末尾开始的
rfind
>>string=>https://stackoverflow.com/xyz/abc'
>>>string=string[:string.rfind('/')+1]
>>>打印(字符串)
'https://stackoverflow.com/xyz/'
如果您也不需要该字符(本例中为/
),只需删除+1
但是请记住,只有当字符串实际包含您要查找的字符时,这才有效。
如果要防止出现这种情况,必须使用以下方法:
string='1〕https://stackoverflow.com/xyz/abc'
idx=string.rfind(“/”)
如果(idx!=-1):
字符串=字符串[:idx+1]
除非,很明显,您希望在找不到字符的情况下得到一个空字符串。
那么第一个例子就可以了。我将使用
urllib.parse
和pathlib
而不是regexhttps://stackoverflow.com/xyz/abc“.rsplit(“/”,1)[0]https://stackoverflow.com/xyz/abc'.rsplit('/',1)[0]欣赏这些建议,将研究如何应用这些建议,看看它是否适用于我正在使用的整个用例。欣赏这些建议,将研究如何应用这些建议,看看它是否适用于我正在使用的整个用例