我收到了一個我想從中提取有用數據的文件。該文件的格式是這樣的:匹配多個正則表達式組並將其刪除
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
完美。刪除我的for循環和使用sub()工作正常。謝謝你的幫助。 – greenie 2009-11-24 16:31:53