Python 用于提取所有 URL 的一行

Python one-liner for extracting all URLs

我需要一个 python 单行代码,它将 return 在字符串中找到的所有 URL 并将其放入 bash 数组中。类似于:

URLs=($(echo 'foo bar baz http://blackfridaygift.info/BUu4nmkRR baz foo bar http://inhelation.com/fil/iowa/lvmk65irqibpmi972hz6xx2k.php%3FLA4i9C1606274697520fdd2ad4cf649e25ae72996c901bf1520fdd2ad4cf649e25ae72996c901bf1520fdd2ad4cf649e25ae72996c901bf1520fdd2ad4cf649e25ae72996c901bf1520fdd2ad4cf649e25ae72996c901bf1' | python -c 'something here'))

我花了最后一个小时谷歌搜索,但似乎找不到正确的答案。

使用regular expression匹配http:....https:...

import re
import sys

matched = re.findall(r"https?:\S+", sys.stdin.read())
print(matched)

通过转换成单行...

URLS=$(echo '....' | python -c 'import re, sys; print(re.findall(r"https?:\S+", sys.stdin.read()))')