在模式之间拆分字符串

时间:2014-11-11 20:04:24

标签: python regex

我有一个字符串:

a="\r\nOk\r\n\r\nThanks\r\n"

I want to split string so i will get:

array[0]="Ok"
array[1]="Thanks"

我尝试了什么:

array=re.split('\r\n',a)

这导致了一个复杂的列表。

有什么想法吗?

4 个答案:

答案 0 :(得分:4)

您不需要regex只需使用str.split()

>>> a="\r\nOk\r\n\r\nThanks\r\n"
>>> a.split()
['Ok', 'Thanks']

str.split([sep[, maxsplit]]): 如果未指定sep或连续空格的None次运行被视为单个分隔符,并且如果字符串具有前导或尾随空格,则结果将在开头或结尾处不包含空字符串。因此,将空字符串或仅由空格组成的字符串拆分为无分隔符将返回[]

答案 1 :(得分:2)

使用|分隔表达式中的分隔符,只需过滤掉空字符串:

>>> [s for s in re.split(r'\r|\n', a) if s]
['Ok', 'Thanks']

答案 2 :(得分:1)

a = "\r\nOk\r\n\r\nThanks\r\n"
array = a.split("\r\n")
array = [item for item in array if item]

更新:Kasra的上述答案更简单,因此更受欢迎。

答案 3 :(得分:1)

这是一种简单的方法。对于剥离字符串,无需提及任意数量的\n\r或任何spaces。这些会被自动剥离。

>>> a="\r\nOk\r\n\r\nThanks\r\n"
>>> a.strip().split()
['Ok', 'Thanks']
相关问题