我需要从URL路径中提取特定的字符串

时间:2019-03-01 02:58:39

标签: string split weather strsplit

我正在从互联网上的JSON中提取以下URL。

我正在使用的字符串示例: http://icons.wxug.com/i/c/k/nt_cloudy.gif

我只需要从上面获取“ nt_cloudy”,即可将img(已存储)写到气象应用程序的电子纸显示屏上。我已经尝试过re.split(),但是无论我拆分了什么,都只能得到完整的字符串。

其他所有方法都可以,如果我手动输入文件名,则可以显示图像,但是天气情况发生了变化,因此我需要从JSON中提取名称。同样,它只是在我所卡住的完整字符串中找到特定的字符串。

crontab -eu root

3 个答案:

答案 0 :(得分:0)

如果您确信路径将始终以图像文件名结尾,并且在路径后没有查询字符串(例如nt_cloudy.gif?foo=bar&x=y&...),则可以仅使用Python的{{1 }}标准模块。

https://docs.python.org/3/library/os.path.html

os.path

如果您尝试解码可能包含查询字符串的URL,则可能更喜欢使用#!/usr/bin/env python import os URL = 'http://icons.wxug.com/i/c/k/nt_cloudy.gif' FILENAME = os.path.basename(URL) 模块。

https://docs.python.org/3/library/urllib.parse.html#module-urllib.parse

我不会详细介绍为什么您的正则表达式不能按预期的方式工作,因为老实说,手工制作正则表达式对于此用例而言是过大的。

答案 1 :(得分:0)

您可以使用以下常规表达式:

if t <5 and (5-t)<3:        # True! Execute!
    new_grade = n * 10 + 5

if t > 5 and (t - 5) >2:    # False, skip
    new_grade = (n+1) * 10
else:                       # No if was hit in this block -- execute!
    new_grade = grade       # uh oh, we just overwrote our previous result..

找到参考文献here

答案 2 :(得分:0)

请检查此

let regex = /(\w+)\.gif/g.exec("http://icons.wxug.com/i/c/k/nt_cloudy.gif")
if(regex != null && regex.length == 2)
    console.log(regex[1]);