python,从字符串中删除链接

时间:2016-03-31 02:23:30

标签: python string parsing filter

如何删除此字符串中的链接

s=' hello how are you www.ford.com today '

以便输出

s='hello how are you today'

4 个答案:

答案 0 :(得分:6)

尝试以下列表理解,省略模式www._____.com

的单词
' '.join(item for item in s.split() if not (item.startswith('www.') and item.endswith('.com')) and len(item) > 7) #the len(item) is to make sure that words like www.com, which aren't real URLs, aren't removed
>>> s=' hello how are you www.ford.com today '
>>> ' '.join(item for item in s.split() if not (item.startswith('www.') and item.endswith('.com') and len(item) > 7))
'hello how are you today'
>>> 

答案 1 :(得分:2)

虽然你当然可以使用strings方法,但我更喜欢基于正则表达式的方法。它可以处理单词之间的空格。

import re

s = " hello www.something.com there bobby"
s = re.sub(r'www\.\S+\.com', '',s)
print(s) # hello  there bobby
s = "hello www. begins and .com ends"
s = re.sub(r'www\.\S+\.com', '',s)
print(s) # hello www. begins and .com ends

答案 2 :(得分:2)

对于正则表达式替换来说,这似乎是一个很好的情况。

>>> import re
>>> s = ' hello how are you www.ford.com today www.example.co.jp '
>>> re.sub(r'\s*(?:https?://)?www\.\S*\.[A-Za-z]{2,5}\s*', ' ', s).strip()
'hello how are you today'

上面找到任何以潜在空格开头的字符串,然后可能是https://http://,然后是www.,然后是任何非空白字符,然后.后跟2-5个字母字符,然后是潜在的空格。它用一个空格替换这些字符串,然后从结果中删除前导和尾随空格。

请注意,这是一个简单的URL示例,由您的具体示例定义。有关正则表达式的详细说明,请参阅this answer

答案 3 :(得分:0)

为了处理url周围没有空格的情况,你可以使用这样的字符串split方法:

if ".com" in s:
    s=''.join((s.split("www.")[0], " ", s.split(".com")[1]))