Python регулярное выражение, соответствующее столбцу с неравномерным пробелом между любыми двумя столбцами? - PullRequest
0 голосов
/ 16 февраля 2020

enter image description here

У меня есть текстовый файл, содержащий некоторую числовую строку данных, которые мне нужно сопоставить. Данные помещаются в столбец, разделенный некоторым пробелом. Например, рассмотрим третью строку:

101     NUC-A       21.600 1  1.0200 1.3450  450.00  -66.03 0.9894  49.64 0.2681 0.4167

Мы видим, что 101 в столбце 1 и NU C -A в столбце 2 разделены 5 пробелами. Однако столбец 2 и столбец 3 между словами NU C -A и 21.600 разделены 7 пробелами.

Все строки, которые должны совпадать, отмечены красной стрелкой вниз.

Всего имеется 12 столбцов, как мне извлечь все эти строки, содержащие 12 столбцов? Я до сих пор не могу придумать ни одного хорошего примера в деле

Большое спасибо

1 Ответ

3 голосов
/ 16 февраля 2020

Вы не хотите "регулярное выражение, которое соответствует столбцам с неравномерным разделением пробелов" , вы хотите разделить на \s+.

import re

with open('filename', encoding='utf8') as file:
    for line in file:
        fields = re.split(r'\s+', line)
        if len(fields) == 12:
            print(fields)

Вы можете сделать то же самое без регулярных выражений, разделив пространство и отфильтровав все пустые строки.

        fields = list(filter(None, line.split(' ')))
        if len(fields) == 12:
            print(fields)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...