首页 > 解决方案 > 无法拆分字符串

问题描述

我有一个愚蠢的问题,列表中有空白项目。其中有 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', 'better', 'than', 'ugly']

但实际结果是:['Beautiful', '', 'is', '', '', '', 'better', 'than', 'ugly']

标签: python

解决方案


您想要拆分任意数量的分隔符组。你现在这样做的方式,你一次只分裂一个。这给了你你想要的:

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)

推荐阅读