首页 > 解决方案 > 如何在python上使用正则表达式获取链接的特定部分

问题描述

我正在将来自链接配置文件的大量链接输入到一个程序中,该程序将为我获取这些链接配置文件的 ID。(链接是字符串,点击其中大部分将无处可去)

示例 1:“ https://www.linkedin.com/in/facundo-b-barber%C3%A1-86bb41187/

示例 2:“ https://www.linkedin.com/in/facundo-b-barber%C3%A1-86bb41187/sometext

如果我输入其中任何一个示例,结果将是:“facundo-b-barber%C3%A1-86bb41187”我遇到的问题是当我有这样的事情时:

示例 3:“ https://www.linkedin.com/in/facundo-b-barber%C3%A1-86bb41187/sometext/anothertext/

输出为:“facundo-b-barber%C3%A1-86bb41187/sometext”

我试过在这个函数中使用 re 模块:

def get_in(url):
    parsed = parse.urlparse(url)
    lin = parsed.path
    lin = re.search(r'/in/(.*)/', lin).group(1)
    print(lin)
    return lin

我只想获取 id 并删除前面和后面的所有其他内容。

标签: pythonregexparsingurl

解决方案


这应该工作->

url.split('/')[4]

例子:

>>> url =  "https://www.linkedin.com/in/facundo-b-barber%C3%A1-86bb41187/sometext/anothertext/"
>>> url.split('/')[4]
'facundo-b-barber%C3%A1-86bb41187'

>>> url = "https://www.linkedin.com/in/facundo-b-barber%C3%A1-86bb41187/sometext"
>>> url.split('/')[4]
'facundo-b-barber%C3%A1-86bb41187'

>>> url = "https://www.linkedin.com/in/facundo-b-barber%C3%A1-86bb41187/"
>>> url.split('/')[4]
'facundo-b-barber%C3%A1-86bb41187'

推荐阅读