如何在特定字符后分割字符串?

时间:2019-08-24 09:05:37

标签: python split

我要拆分带有特定符号的项目列表。

我使用了以下代码

data = "launch,  7:30am,  watch tv,  workout,  snap,  running,  research study and learn"
items = data.split(',')
print(', '.join([items[0], items[-1].split('—')[1]]))

我想要的是拆分数据并像这样打印:

  

启动,学习和学习

但是当数据以这种方式更改时出现问题:

data = "launch, 7:30am, watch tv, workout, snap, running, research — discussion, study and learn"
items = data.split(',')
print(', '.join([items[0], items[-1].split('—')[1]]))

在这种情况下,我希望能得到以下结果:

  

启动,讨论,学习和学习

这样,将出现错误“列表索引超出范围”!这是正确的,因为最后一个元素后没有符号“-”,因为是“,”,并且我指示将数据拆分为“,”因此在“讨论,学习和学习”中将其视为单独的数据,因此会出现错误。我不想重写任何代码,是否可以使用代码重用来读取两个数据。可以在“-”符号后读取吗?

1 个答案:

答案 0 :(得分:0)

似乎您的预期输出取决于单词research

我们可以使用正则表达式实现相同的功能,该正则表达式将搜索research个单词并在其后提供字符。

您可以尝试-

# -*- coding: utf-8 -*-
import re
(re.split(r'*research[^A-Za-z0-9]+',data))[-1]
#study and learn
#discussion, study and learn

完整代码:

# -*- coding: utf-8 -*-
import re
print ("{0}, {1}".format(data.split(',')[0], (re.split(r' *research[^A-Za-z0-9]+',data))[-1]))
#launch, study and learn
#launch, discussion, study and learn

详细了解python Regex

https://docs.python.org/3/library/re.html

或此处的表达式:

https://www.w3schools.com/python/python_regex.asp