使用re.split()将字符串分成列表

时间:2014-06-26 05:29:29

标签: python regex python-3.x

我正在使用此代码将单词分成列表。 while循环用于删除出现的任何空格,它们将只是一个''的元素。问题是甚至在我运行while循环后仍然只有''的元素。我相信他们是由于空白和缩进。 while循环确实摆脱了大约2/3的这些空间。有没有办法让单词分开?我不想要任何空白元素,因为当我稍后对它们运行循环时,当我引用mylist[i][0]时,我会得到一个超出范围的字符串索引。

str = fpin.read()
mylist = re.split('[ \n]', str)
i = 0

while(i < len(mylist)):
if mylist[i] == '':
    del mylist[i]
i = i + 1

2 个答案:

答案 0 :(得分:6)

除非我误解你的规格,否则你不需要这里的正则表达式。您可以使用字符串的split方法。

>>> mystr = 'This     is  \n my awesome    \nstring'
>>> mystr.split()
['This', 'is', 'my', 'awesome', 'string']

答案 1 :(得分:0)

这就是我将白色空格分隔的字符串拆分为列表所做的:

re.split(r'\s*', re.sub(r'^\s+|\s*$', '', input_string))

你的代码的另一个问题是,你不应该使用str作为变量名,因为str是一个内置函数。