Имея этот многострочные переменный:Python многострочного регулярное выражение разделитель
raw = '''
CONTENT = ALL
TABLES = TEST.RAW_1
, TEST.RAW_2
, TEST.RAW_3
, TEST.RAW_4
PARALLEL = 4
'''
Структура всегда TAG = CONTENT
, обе строки не являются фиксированной и может содержать CONTENT
новые линии.
Мне нужен regex
получить:
[('CONTENT', 'ALL'), ('TABLES', 'TEST.RAW_1\n , TEST.RAW_2\n , TEST.RAW_3\n , TEST.RAW_4\n'), ('PARALLEL', '4')]
Пробовал несколько комбинаций, но я не в состоянии остановкиregex
двигателя в нужный момент для TABLES
тега, как его содержание является многострочная строка, ограниченная следующим тегом.
Некоторые попытки от переводчика:
>>> re.findall(r'(\w+?)\s=\s(.+?)', raw, re.DOTALL)
[('CONTENT', 'A'), ('TABLES', 'T'), ('PARALLEL', '4')]
>>> re.findall(r'^(\w+)\s=\s(.+)?', raw, re.M)
[('CONTENT', 'ALL'), ('TABLES', 'TEST.RAW_1'), ('PARALLEL', '4')]
>>> re.findall(r'(\w+)\s=\s(.+)?', raw, re.DOTALL)
[('CONTENT', 'ALL\nTABLES = TEST.RAW_1\n , TEST.RAW_2\n , TEST.RAW_3\n , TEST.RAW_4\nPARALLEL = 4\n')]
Спасибо!
Удивительные объяснения! Огромное 'regex' * kung-fu * .. Большое спасибо Wiktor! – klashxx