유용한 데이터를 추출 할 파일을 받았습니다.여러 regex 그룹 일치 및 제거
LINE: 1
TOKENKIND: somedata
TOKENKIND: somedata
LINE: 2
TOKENKIND: somedata
LINE: 3
등이 ...
내가 뭘하고 싶은 것은 LINE을 제거 할 수 있습니다 : : 및 줄 번호뿐만 아니라 TOKENKIND : 파일의 형식은 다음과 같이 간다 그래서 난 그냥 남아 있어요 'somedata somedate somedata ...'로 구성된 문자열
내가 원하는 파일의 비트와 일치하는 정규 표현식을 사용하여 파이썬을 사용하고 있습니다. 풀이.
내 질문은 어떻게 여러 정규 표현식 그룹과 일치하고 그들을 무시하고 내 정규 표현식과 일치하지 않는 내용을 출력 문자열에 추가 할 수 있습니까? 나의 현재 코드는 다음과 같습니다
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