无法拆分字符串

时间:2019-05-29 22:48:04

标签: python

我有一个愚蠢的问题,列表中有空白项目。它中有if语句试图抵消它,但是即使有它们,输出中也包含空的部分。

我一直在研究string.split(),发现它实际上是很具体的,每当我尝试使其工作时,它都会失败。怎么了?

a = 'Beautiful, is==; better*than\nugly'
import re

a = re.split(',|\s|=|;|\*|\n| ',a)

for x in a:
    if x == '\n':
        a.remove(x)
    elif x == ' ':
        a.remove(x)
    elif x == '':
        a.remove(x)

print(a)
print("REE")

我希望结果仅是: [“美丽”,“是”,“更好”,“比”,“丑陋”]

但是实际结果是: [“ Beautiful”,“,” is“,”,“,”,“更好”,“比”,“丑”]

1 个答案:

答案 0 :(得分:1)

您要分割任意数量的定界符字符的组。您现在的操作方式是一次只拆分一个。这会给您您想要的东西:

import re

a = 'Beautiful, is==; better*than\nugly'

a = re.split(r'[,\s=;*\n]+',a)

print(a)

结果:

['Beautiful', 'is', 'better', 'than', 'ugly']

如果要分割所有非字母数字字符,可以改用以下表达式:

a = re.split(r'[^\w]+',a)