识别文本中.onion 链接的方法?
Method for identifying .onion links in text?
我如何识别文本中的 .onion 链接,请记住它们可以以多种方式出现;
hfajlhfjkdsflkdsja.onion
http://hfajlhfjkdsflkdsja.onion
http://www.hfajlhfjkdsflkdsja.onion
我正在考虑正则表达式,但 (.*?.onion)
会 return 整个段落 URL Link 被埋在
中
这样做:(?:https?://)?(?:www)?(\S*?\.onion)\b
(添加了非捕获组 - 来源:@WiktorStribiżew)
演示:
s = '''hfajlhfjkdsflkdsja.onion
https://hfajlhfjkdsflkdsja.onion
http://www.hfajlhfjkdsflkdsja.onion
https://www.google.com
https://whosebug.com'''
for m in re.finditer(r'(?:https?://)?(?:www)?(\S*?\.onion)\b', s, re.M | re.IGNORECASE):
print(m.group(0))
输出
hfajlhfjkdsflkdsja.onion
https://hfajlhfjkdsflkdsja.onion
http://www.hfajlhfjkdsflkdsja.onion
没有正则表达式的方法:
url = 'http://hfajlhfjkdsflkdsja.onion'
split = url.split('.onion')
if len(split)==2 && len(split[1])==0:
%do something
快速简便:
([^\s]+\.onion)
匹配从第一个 Space 到“.onion”的所有字符。
我如何识别文本中的 .onion 链接,请记住它们可以以多种方式出现;
hfajlhfjkdsflkdsja.onion
http://hfajlhfjkdsflkdsja.onion
http://www.hfajlhfjkdsflkdsja.onion
我正在考虑正则表达式,但 (.*?.onion)
会 return 整个段落 URL Link 被埋在
这样做:(?:https?://)?(?:www)?(\S*?\.onion)\b
(添加了非捕获组 - 来源:@WiktorStribiżew)
演示:
s = '''hfajlhfjkdsflkdsja.onion
https://hfajlhfjkdsflkdsja.onion
http://www.hfajlhfjkdsflkdsja.onion
https://www.google.com
https://whosebug.com'''
for m in re.finditer(r'(?:https?://)?(?:www)?(\S*?\.onion)\b', s, re.M | re.IGNORECASE):
print(m.group(0))
输出
hfajlhfjkdsflkdsja.onion
https://hfajlhfjkdsflkdsja.onion
http://www.hfajlhfjkdsflkdsja.onion
没有正则表达式的方法:
url = 'http://hfajlhfjkdsflkdsja.onion'
split = url.split('.onion')
if len(split)==2 && len(split[1])==0:
%do something
快速简便:
([^\s]+\.onion)
匹配从第一个 Space 到“.onion”的所有字符。