Python 从文本文件中提取不同的链接?
我的问题是,我有一个非结构化的.txt文件,如下所示,其中包含不同的链接,因为每个链接中都有一个签名: 我想要的是提取以http://web.alphorm.com开头的所有链接 我使用了如下所示的正则表达式:Python 从文本文件中提取不同的链接?,python,regex,Python,Regex,我的问题是,我有一个非结构化的.txt文件,如下所示,其中包含不同的链接,因为每个链接中都有一个签名: 我想要的是提取以http://web.alphorm.com开头的所有链接 我使用了如下所示的正则表达式: matchObj = re.findall(r'(http:// web.alphorm.com/.*&Key-Pair-Id=APKAJF2PMCJPGKXG2GEA)"}', string) 但它并没有真正给我想要的。它缩小了文
matchObj = re.findall(r'(http:// web.alphorm.com/.*&Key-Pair-Id=APKAJF2PMCJPGKXG2GEA)"}',
string)
但它并没有真正给我想要的。它缩小了文本文件,并给我搜索的链接,但与其他不受欢迎的链接和文本
有什么问题吗?您的正则表达式中的
*
是贪婪的,这意味着解析引擎将匹配http://web.alphorm.com/第一次匹配的,以及最后一次匹配的密钥对Id=APKAJF2PMCJPGKXG2GEA
,以及介于两者之间的所有内容
试试这个:
matchObj = re.findall(r'(http://web.alphorm.com/.*?&Key-Pair-Id=APKAJF2PMCJPGKXG2GEA)"}',string)
添加?
将使匹配尽可能少地延迟
注意:我还删除了http://
和web.alphorm.com
之间的空格,因为我认为这是一个打字错误。请发布一篇文章,你真的在http://
和web.alphorm.com
之间有空格吗?请回答你的问题,并从文本文件中输入一些实际的样本数据。你试过用那种方式解析它吗?