Python 从具有特定模式的字符串中获取子字符串

Python 从具有特定模式的字符串中获取子字符串,python,tweepy,Python,Tweepy,我正在使用twitter链接,我已经从twitter的api中提取了链接 https://twitter.com/shiromiru36/status/1302713597521403904/photo/1 以上是我拥有的链接示例 我想得到的链接只有前面的一部分,我想删除 /photo/1 这样我就可以 https://twitter.com/shiromiru36/status/1302713597521403904 目前,我通过计算我不想要的单词数来提取链接 url = https:/

我正在使用twitter链接,我已经从twitter的api中提取了链接

https://twitter.com/shiromiru36/status/1302713597521403904/photo/1
以上是我拥有的链接示例

我想得到的链接只有前面的一部分,我想删除

/photo/1
这样我就可以

https://twitter.com/shiromiru36/status/1302713597521403904
目前,我通过计算我不想要的单词数来提取链接

url = https://twitter.com/shiromiru36/status/1302713597521403904/photo/1
url[:-8]
我想问一下,是否有任何方法可以通过找到自己的模式来提取链接。因为不需要的部分在最后的第二个“/”之后。我在想,我是否可以先找到倒数第二个“/”来删除不需要的部分,然后删除后面的单词


谢谢。

您可以这样做:

'/'.join(s.split('/')[:-2])

你可以这样做:

'/'.join(s.split('/')[:-2])
试试这个

url = 'https://twitter.com/shiromiru36/status/1302713597521403904/photo/1'
url=(((url[::-1]).split('/',2))[-1])[::-1]
print(url)

https://twitter.com/shiromiru36/status/1302713597521403904
试试这个

url = 'https://twitter.com/shiromiru36/status/1302713597521403904/photo/1'
url=(((url[::-1]).split('/',2))[-1])[::-1]
print(url)

https://twitter.com/shiromiru36/status/1302713597521403904

可以使用正则表达式来实现。这里有一个快速(难看的)解决方案:
re.search(r'(http[s]?://.*twitter.com/(?:++/status/)\d+/,url)
您可以使用正则表达式来完成。这里有一个快速(难看)的解决方案:
re.search(r'(http[s]?://.*twitter.com/(?:。+/status/)\d+/,url)