免责声明: 我知道之前有很多关于此类事情的问题,如果这是一个骗局,请标记或者只是给我链接&我可以删除这篇文章。
半免责声明 :我对正则表达式不熟悉,所以我无法自行完成此操作:/
我有一个看起来像这样的文件:
asd<a href="http://asd.asd.asd#asd">asd</a>
asd<a href="https://asd.asd.asd#asd">asd</a>
这么多 asd 因为我不知道是否:
http
或https
www.
或其他#something
或者没有我希望脚本获取此文件,例如input.txt,提取所有网址,使用#___
,然后输出,每行一个,再输出到另一个文本文件比方说,output.txt。
对于此示例,输出将为:
http://asd.asd.asd#asd
https://asd.asd.asd#asd
再次,抱歉,如果这是重复的,我只是不擅长使用谷歌,并且,提前,谢谢你:)
使用Python 3 。
答案 0 :(得分:3)
(?<=href=")[^"]*#[^"]*(?=")
您只需将此正则表达式与re.findall
一起使用即可获得结果。请参阅演示。
https://regex101.com/r/uF4oY4/7
如果#
是可选的,请使用
(?<=href=")[^"]*(?=")
您可以将其用作
f=open("input.txt","r")
print (re.findall(r'(?<=href=")[^"]*#[^"]*(?=")',f.read()))
答案 1 :(得分:0)
使用BeautifulSoup
from bs4 import BeautifulSoup
s = '''asd<a href="http://asd.asd.asd#asd">asd</a>
asd<a href="https://asd.asd.asd#asd">asd</a>'''
soup = BeautifulSoup(s)
print([i['href'] for i in soup.select('a') if '#' in i['href']])