我试图使用 perls 正则表达式从 torrent 磁力链接中提取信息哈希,
磁力链接看起来像:
磁铁:?xt=urn:btih:8AC3731AD4B039C05393B5404AFA6E7397810B41&dn=ubuntu+11+10+oneiric+ocelot+desktop+cd+i386&tr=http%3A%2F%2Ftracker.openbittorrent.com%2Fannounce
,但有时它看起来像:
磁铁:? xt=urn:btih:8AC3731AD4B039C05393B5404AFA6E7397810B41
我试图提取的部分是 8AC3731AD4B039C05393B5404AFA6E7397810B41
我试图捕获第一个'&'之前的所有内容,或者如果它只包含 infohash 然后直到行尾,我尝试了几种方法但无法让它正常工作
我在下面只捕获第一个字符
if ($tmpVar =~ m/magnet\:\?xt=urn\:btih\:([[:alnum:]]+?)/i) {
$mainRes{'hash'} = $1;
}
我也尝试在捕获后添加 &|$ 但这只会导致错误
谢谢