Python-使用re.compile和re.split

Python-使用re.compile和re.split,python,regex,Python,Regex,我试图从文本文件中提取特定数据。文件的每一行都有由制表符分隔的字符串。我想把每个单词分开,并把它作为一个完整的单词。是否可以将re.split和re.compile.findall结合起来执行此操作 下面是一个例子 文件中的原始行: Name Charlie Blue Bird ******Grade:5****** ****** ****** ****** 由制表符分隔的行: ['Name', 'Charlie Blue Bird', '***

我试图从文本文件中提取特定数据。文件的每一行都有由制表符分隔的字符串。我想把每个单词分开,并把它作为一个完整的单词。是否可以将re.split和re.compile.findall结合起来执行此操作

下面是一个例子

文件中的原始行:

Name    Charlie     Blue     Bird   ******Grade:5****** ******  ******  ******  
由制表符分隔的行:

['Name', 'Charlie    Blue     Bird', '******Grade:5******', '******', '******']
我想要的是:

['Name', 'Charlie', 'Blue', 'Bird', 'Grade:5']
非常感谢您的帮助

是的,星星也应该在那里

只需使用一个findall并搜索您感兴趣的字符即可

>>> import re
>>> s = 'Name    Charlie     Blue     Bird   ******Grade:5****** ******  ******  ******  '
>>> re.findall(r'[A-Za-z0-9:]+', s)
['Name', 'Charlie', 'Blue', 'Bird', 'Grade:5']

您是如何将原始行放入列表的?这是文件提供的内容。我的意思是-您运行了什么代码将其放入列表?谢谢!你能解释一下“[A-Za-z0-9::][”是什么意思吗?例如,如果我在“Grade:5”中有一个空格,例如“Grade:5”,我是否仍然能够维护整个单词?如果它是Grade:5而不是Grade:5,那么Grade:和5将是列表中两个独立的元素。您说过它是一个选项卡分隔的文件,但您的示例数据由多个空格分隔。有许多其他方法可以在两个或多个空格上重新拆分、在选项卡上重新拆分、替换星号等,但是如果您的实际数据与您发布的数据不同,您必须通过编辑来更正。感谢您的评论。不,实际的数据应该用tab分隔,但我无法控制文件中的实际单词,因此如果这个人决定写******等级:5******,那么我必须将整个单词作为一个单词,而不是用空格隔开。我感谢你的评论。我想我可能必须找到一种从文件中提取数据的不同方法。