首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >拆分字符串,但在Python中将分隔符保留在相同的结果子字符串中

拆分字符串,但在Python中将分隔符保留在相同的结果子字符串中
EN

Stack Overflow用户
提问于 2018-02-08 04:24:51
回答 2查看 78关注 0票数 0

我有一个包含URL的字符串:

string = https://www.link1.net/abc/cik?xai=En8MmT__aF_nQm-F48&sig=Cg0A7_5AE&urlfix=1&;ccurl=https://aax-us.link-two.com/x/c/Qoj_sZnkA%2526adurl%253Dhttp%253A%252F%252Fwww.link-three.mu%252F

我想把它们全部提取出来,得到这样的结果:

['https://www.link1.net/abc/cik?xai=En8MmT__aF_nQm-F48&sig=Cg0A7_5AE&urlfix=1&;ccurl=','https://aax-us.link-two.com/x/c/Qoj_sZnkA%2526adurl%253D','http%253A%252F%252Fwww.link-three.mu%252F']

我正在尝试:

代码语言:javascript
复制
urls = [x for x in re.split('(http[s]?)', string) if x]
print urls 

结果是:

['https', '://www.link1.net/abc/cik?xai=En8MmT__aF_nQm- F48&sig=Cg0A7_5AE&urlfix=1&;ccurl=', 'https', '://aax-us.link-two.com/x/c/Qoj_sZnkA%2526adurl%253D', 'http', '%253A%252F%252Fwww.link-three.mu%252F']

如果URL可以以“http”或“https”开头,我如何才能获得完整的URL?

有什么想法吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-02-08 04:43:20

在不使用re的情况下,您可以按如下方式处理此问题:

代码语言:javascript
复制
['http' + x for x in filter(lambda x: x, string.split('http'))]

结果将是:

代码语言:javascript
复制
['https://www.link1.net/abc/cik?xai=En8MmT__aF_nQm-
F48&sig=Cg0A7_5AE&urlfix=1&;ccurl=', 'https://aax-us.link-
two.com/x/c/Qoj_sZnkA%2526adurl%253D', 'http%253A%252F%252Fwww.link-
three.mu%252F']
票数 2
EN

Stack Overflow用户

发布于 2018-02-08 04:31:10

你可以使用你的结果,并加入两个连续的匹配,这将是工作。

代码语言:javascript
复制
urls = [urls[i]+urls[i+1] for i in range(0,len(urls),2)]

但最好在https?或字符串末尾使用带有先行的findall

代码语言:javascript
复制
import re

string = "https://www.link1.net/abc/cik?xai=En8MmT__aF_nQm-F48&sig=Cg0A7_5AE&urlfix=1&;ccurl=https://aax-us.link-two.com/x/c/Qoj_sZnkA%2526adurl%253Dhttp%253A%252F%252Fwww.link-three.mu%252F"

print(re.findall("https?.*?(?=https?|$)",string))

结果:

代码语言:javascript
复制
['https://www.link1.net/abc/cik?xai=En8MmT__aF_nQm-F48&sig=Cg0A7_5AE&urlfix=1&;ccurl=',
 'https://aax-us.link-two.com/x/c/Qoj_sZnkA%2526adurl%253D', 
 'http%253A%252F%252Fwww.link-three.mu%252F']

正如评论中所提到的,由于您不能将:添加到分隔符,因此您无法确定URL分隔符(如果URL在您正在使用的地址中包含http )

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48672653

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档