我正在使用此代码将单词分成列表。 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
答案 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是一个内置函数。