我有一个字符串:
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)
这导致了一个复杂的列表。
有什么想法吗?
答案 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']