【问题标题】:Verify magnet link in Python (using regular expressions)?验证 Python 中的磁力链接(使用正则表达式)?
【发布时间】:2022-06-17 21:42:13
【问题描述】:

上下文

我尝试使用 Python 验证磁力链接。签出this answer 后,我尝试使用以下方法将解决方案复制到 Python:

def verify_magnet_link(magnet_link):
    print(f'magnet_link={magnet_link}')
    pattern='/magnet:\?xt=urn:[a-z0-9]+:[a-z0-9]{32}/i'
    print(f'pattern={pattern}')
    if (re.match(pattern,magnet_link) != None):
        print('Link is valid')
    else:
        print("Magnet link invalid.")

我在 Ubuntu 22.04 OS 磁力链接上验证了 Regexr.com 中的正则表达式模式:

magnet_link = 'magnet:?xt=urn:btih:FRVWQWGWDWUVIPKCGGTR3NFRZETEWBUF&dn=ubuntu-22.04-desktop-amd64.iso&xl=3654957056&tr.1=https%3A%2F%2Ftorrent.ubuntu.com%2Fannounce&tr.2=https%3A%2F%2Ftorrent.ubuntu.com%2Fannounce&tr.3=https%3A%2F%2Fipv6.torrent.ubuntu.com%2Fannounce'

# Specify an output dir
output_dir = "/home/"

verify_magnet_link(magnet_link)

但是,返回:

None
Magnet link invalid.

问题

如何在 Python 中验证磁力链接格式?

【问题讨论】:

    标签: python verification magnet-uri


    【解决方案1】:

    verify_magnet_link(magnet_link) 函数验证 Python 链接。如果链接有效,则打印Magnet link is valid!,否则打印Magnet link is invalid

    def verify_magnet_link(magnet_link):
        pattern=re.compile(r"magnet:\?xt=urn:[a-z0-9]+:[a-zA-Z0-9]{32}")
        result = pattern.match(magnet_link)
        if result != None:
            print("Magnet link is valid!")
        else:
            print("Magnet link is invalid.")
    
    
    magnet_link = 'magnet:?xt=urn:btih:FRVWQWGWDWUVIPKCGGTR3NFRZETEWBUF&dn=ubuntu-22.04-desktop-amd64.iso&xl=3654957056&tr.1=https%3A%2F%2Ftorrent.ubuntu.com%2Fannounce&tr.2=https%3A%2F%2Ftorrent.ubuntu.com%2Fannounce&tr.3=https%3A%2F%2Fipv6.torrent.ubuntu.com%2Fannounce'
    
    # Specify an output dir
    output_dir = "/home/name"
    
    verify_magnet_link(magnet_link)
    

    请注意,在 w.r.t.到the original answer in Javascript,最后一个[a-z0-9] 更改为[a-zA-Z0-9],因为FRVWQWGWDWUVIPKCGGTR3NFRZETEWBUF& 是大写的。 Python 没有给出与 a-z0-9 的原始答案匹配,但是,regexr 可以: regexr.com/6nvl1 。我不太清楚为什么会出现这种行为差异。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-01-21
      • 1970-01-01
      • 2018-02-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多