我收到了一个文件,想从中提取有用的数据。文件的格式大致如下:
LINE: 1
TOKENKIND: somedata
TOKENKIND: somedata
LINE: 2
TOKENKIND: somedata
LINE: 3
我想做的是删除LINE:和行号,以及TOKENKIND:,只留下一个由“somedata somedate somedata...”组成的字符串。
我使用Python来完成这个任务,使用正则表达式(我不确定是否正确)匹配我想要删除的文件部分。
我的问题是,如何使Python匹配多个正则表达式组并忽略它们,并将任何未被正则表达式匹配的内容添加到我的输出字符串中? 我的当前代码如下:
import re
import sys
ignoredTokens = re.compile('''
(?P<WHITESPACE> \s+ ) |
(?P<LINE> LINE:\s[0-9]+ ) |
(?P<TOKEN> [A-Z]+: )
''', re.VERBOSE)
tokenList = open(sys.argv[1], 'r').read()
cleanedList = ''
scanner = ignoredTokens.scanner(tokenList)
for line in tokenList:
match = scanner.match()
if match.lastgroup not in ('WHITESPACE', 'LINE', 'TOKEN'):
cleanedList = cleanedList + match.group(match.lastindex) + ' '
print cleanedList