我该如何抓住一个字符串,而没有介于中间的唯一字符?

时间:2019-07-12 08:47:32

标签: python regex python-3.x selenium-webdriver

我正在尝试从URL本身获取图像名称,这是动态的。

URL看起来像:

https://test.xx-1.xx.xx.xx/xx/fb88442930ff540ceb5291d26354ee8a/5DA5E231/t51.2885-15/sh0.08/e35/s640x640/65542766_147243723033642_3920490496418948592_n.jpg?_nc_ht=xx.xx-1.xx.xx.com

我的目标是仅从网址中获取此“ 65542766_147243723033642_3920490496418948592 ”。

我尝试从URL中抓取“ 65542766_147243723033642_3920490496418948592 ”字符串,并将“ s640x640 ”和“ _n ”保留为唯一标识,然后抓取该字符串在这两者之间有效,但是在点“ s640x640 ”中的某处,此东西根据图像的高度和长度而变得动态,因此我的python程序中断了。

def verify_duplicate_pictures(s):
    result = re.search(r"(?<=640/).*?(?=_n)", s).group(0)
    return result
s = 'https://test.xx-1.xx.xx.com/xx/fb88442930ff540ceb5291d26354ee8a/5DA5E231/t51.2885-15/sh0.08/e35/s640x640/65542766_147243723033642_3920490496418948592_n.jpg?_nc_ht=xx.xx-1.xx.xx.com'

verify_duplicate_pictures(s)

我得到的代码的结果是

结果:

'65542766_147243723033642_3920490496418948592'

但是只要URL动态并且“ s640x640 ”更改为其他内容,我的程序就会中断。

1 个答案:

答案 0 :(得分:0)

您在这里:

import re

url = 'https://test.xx-1.xx.xx.xx/xx/fb88442930ff540ceb5291d26354ee8a/5DA5E231/t51.2885-15/sh0.08/e35/s640x640/65542766_147243723033642_3920490496418948592_n.jpg?_nc_ht=xx.xx-1.xx.xx.com'
out = re.findall("\w+_n", url)[0][:-2]

输出:

65542766_147243723033642_3920490496418948592