使用正则表达式从URL中删除空格

时间:2015-03-19 14:22:49

标签: python regex

我有这一段:

“每日东方新闻”是一份由伊利诺伊州查尔斯顿东伊利诺伊大学社区出版的学生报纸。该报成立于1915年 http://media。万维网。 dennews。 COM /媒体/存储/ paper309 /新闻/ 2005/11/04 /新闻/ TheNews。 Turns.90-1045667。 shtml 并在学年的平日发布,夏季每周发布两次。

该论文获得了多项州和国家奖项,包括多项Pacemaker奖项。的 http://search。 atomz。 com / search /?sp_a = sp01089f00& sp_f = iso-8859-1& sp_q =%22daily + east + news%22 该论文的编辑,制作和广告人员组成完全是来自一系列学位课程的学生。

我想段落中的粗体部分中删除空格

预期输出:

“每日东方新闻”是一份由伊利诺伊州查尔斯顿东伊利诺伊大学社区出版的学生报纸。该报于1915年成立 http://media.www.dennews.com/media/storage/paper309/news/2005/11/04/News/TheNews.Turns.90-1045667.shtml ,并在学年平日发布,夏季每周发布两次。

该论文获得了多项州和国家奖项,包括多项Pacemaker奖项。的 http://search。 atomz。 com / search /?sp_a = sp01089f00& sp_f = iso-8859-1& sp_q =%22daily + east + news%22 该论文的编辑,制作和广告人员组成完全是来自一系列学位课程的学生。

尝试了正则表达式 - (http://(?:.)*?\.) ((?:.)*?\.) ((?:.)*?\.) ((?:.)*?\.) ((?:.)*?\.)

但它适用于第二个网址的第一个网址。因为我使用这个((?:.)*?\.)来检查带有空格的重复组。(点)。它似乎不适用于第二个URL。有没有办法为所有URL做这样的事情。

检查一下 - https://regex101.com/r/tB9oL5/7

2 个答案:

答案 0 :(得分:2)

不幸的是,这是不可能的,除非你做出假设,例如要求URL出现在句子的末尾,以.html等结束(这是不合理的,特别是因为你的例子中的所有链接出现在句子的末尾,也不以普通后缀结尾。为了说明为什么不可能这样做的原因,请观察你如何区分:

  

新网站:http://example.com/已出现。

  

新网站:http://example.com/ appeared

答案 1 :(得分:0)

可能是这样的吗?;

list = str.split('http://search. atomz. com/search/?sp_a=sp01089f00&sp_f=iso-8859-1&sp_q=%22daily+eastern+news%22')
nlist = ''.join(list)
print nlist

返回; http://search.atomz.com/search/?sp_a=sp01089f00&sp_f=iso-8859-1&sp_q=%22daily+eastern+news%22

您可能需要将其与变量等复杂化,因为这是一个准系统函数。