正则表达式格式化网址没有空格

时间:2015-03-19 12:40:56

标签: python regex expression

我有这个:

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

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

正则表达式我尝试过:

([(http://(.)\.)|(www\.)])\s

替换为

$1

1 个答案:

答案 0 :(得分:1)

检查以下regex

搜索:

(?=\. [a-zA-Z1-9\. \-]*?com)\. 

替换:

.

这将找到所有.[space]后跟一个com /其间没有非英文字母,因为所有域通常都是英文字母或数字,适合您的情况,但可能包含更多字符以确保所有如果您有更多文字,则涵盖域名,并用点替换.[space]

<强>更新 上述解决方案仅适用于.com之前的空格,如果您需要在包含尾随路径的完整字符串中替换所有出现.[space],则最好使用&#39; http:// &#39;但是对于这一点,由于lookbehinds的大小为零,我们需要首先执行reverse字符串

并在搜索部分的反面应用跟随regex

 (?=[a-zA-Z0-9\/ \.\-]+\/\/:ptth) \.

将其替换为.

然后再将字符串反转,这很容易done in python