Python注册模式URL选择/fi

2024-04-25 18:07:59 发布

您现在位置:Python中文网/ 问答频道 /正文

links = [
    'http://www.npr.org/sections/thesalt/2017/03/10/519650091/falling-stars-negative-yelp-reviews-target-trump-restaurants-hotels',
    'https://ondemand.npr.org/anon.npr-mp3/npr/wesat/2017/03/20170311_wesat_south_korea_wrap.mp3?orgId=1&topicId=1125&d=195&p=7&story=519807707&t=progseg&e=519805215&seg=12&siteplayer=true&dl=1',
    'https://www.facebook.com/NPR',
    'https://www.twitter.com/NPR']

目标:获取包含(/yyyy/mm/dd/ddd/)格式的链接。e、 g./2017/03/10/519650091/

由于某些原因,它总是无法正确使用facebook、twitter和2017/03/20170311格式的链接

sel_links = []
def selectedLinks(links):
    r = re.compile("^(/[0-9]{4}/[0-9]{2}/[0-9]{2}/[0-9]{9})$")
    for link in links:
        if r.search(link)!="None":
            sel_links.append(link)
    return set(sel_links)
selectedLinks(links)

Tags: httpsorgcomfacebook链接www格式link
1条回答
网友
1楼 · 发布于 2024-04-25 18:07:59

这里有几个问题:

  1. 模式^(/[0-9]{4}/[0-9]{2}/[0-9]{2}/[0-9]{9})$要求字符串以/[0-9]{4}/开头,但所有字符串都以http开头
  2. 条件r.search(link)!="None"永远不会为真,因为re.search返回None或匹配对象,因此与字符串"None"进行比较是不合适的

你好像在找这个:

def selectedLinks(links):
    r = re.compile(r"/[0-9]{4}/[0-9]{2}/[0-9]{2}/[0-9]{9}")
    for link in links:
        if r.search(link):
            sel_links.append(link)
    return set(sel_links)

相关问题 更多 >

    热门问题