如何删除此字符串中的链接
s=' hello how are you www.ford.com today '
以便输出
s='hello how are you today'
答案 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]))