关于芬德尔从逗号分隔的字符串获取项目列表

2024-06-16 18:10:15 发布

您现在位置:Python中文网/ 问答频道 /正文

假设你有一个字符串(比如圣诞礼物清单)。在

presents = 'iPods, Windows 8, .hack//Sign boxset , red shoes    , Wall-E DVD,  Deus Ex: Human Revolution        '

逗号分隔的项都是任意的,可以包含数字、标点或特殊字符(逗号除外)。我想用Python得到这些项的数组。在

^{pr2}$

我通常用逗号分隔符拆分字符串,然后用split清理每个字符串。在

presents = presents.split(',')
presents = [present.strip() for present in presents]

我们的好奇心,我能具体用吗芬德尔先生?我要求与分割/剥离相同的行为。在


Tags: 字符串windowsredsplitdvd逗号hackwall
3条回答
re.findall(r'[^,\s]+', presents)

您可以搜索[^,]*,它相当于按,分割。然而,更好的方法是按\s*,\s*进行拆分,这样你就不需要strip部分,而这并不是你很容易就能做到的。(实际上,我认为你根本做不到,因为需要可变长度的负向回溯。)

直接翻译如下:

presents = [x.strip() for x in re.findall(r'[^,]*', presents) if x]

一个改进是将空格分隔成逗号:

^{pr2}$

但在这种情况下,请不要做这两件事中的任何一件。根本无法提高以下内容的清晰度:

presents = presents.split(',')

而且在这种情况下,性能也会比简单的拆分更差。在

相关问题 更多 >