Регулярное выражение Python: получить шаблон регулярного выражения в текстовом файле и сохранить в массиве или списке - PullRequest
0 голосов
/ 04 октября 2018

У меня есть этот пример данных в текстовом файле:

09-02 |||||||| 09-14 | 07: 24 | 12: 15 | 12: 58 |||

09-03 ||||||| 09-15 |||||||

Я пытаюсь получить все данные с таким шаблоном и сохранить их в массиве или списке:

\d{2,3}-\d{2,3}

выходные данные при печати должны быть такими:

['09-02', '09-14', '09-02', '09-15']

Я попробовал этот код, но он напечатал все строки, соответствующие шаблону:

n_date = re.compile('\d{2,3}-\d{2,3}')
with open('sample_2.txt', 'r') as n:
    for line in n:
        re.match(n_date, line)
print(line)

Пожалуйста, дайте мне представление о том, как я могу просто получить данные, соответствующие моему шаблону регулярных выражений, а не всей строке.Спасибо!

Ответы [ 2 ]

0 голосов
/ 04 октября 2018

Вы должны использовать re.findall

n_date = re.compile('\d{2,3}-\d{2,3}')
result = []
with open(‘re.txt’, ‘r’) as n:
    for line in n:
         result += re.findall(n_date, line)
print(result)
0 голосов
/ 04 октября 2018

Попробуйте:

import re
n_date = re.compile('\d{2,3}-\d{2,3}')
with open('sample_2.txt', 'r') as n:
    n = n.read()
    result = re.findall(n_date, n)
    print(result)

Распечатывается:

['09-02', '09-14', '09-03', '09-15']

Ваш код просто печатает последнюю строку цикла for, и вы не сохраняете или не используете результатre.match.re.findall даст вам то, что вам нужно, список всех элементов, соответствующих шаблону.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...