Захватывает строки из текста, но не может получить несколько возвратов - PullRequest
0 голосов
/ 28 декабря 2018

тл; д-р

https://repl.it/repls/AbandonedSoulfulNetbsd (Весь код).

Регулярное выражение:

https://regex101.com/r/Puggjm/1/

РЕДАКТИРОВАТЬ: Регулярное выражение при выполнении показывает только: 1 совпадение, n шагов.Вместо количества совпадений, чтобы соответствовать количеству номеров строк, фактически найденных во всем тексте.

main.py

if __name__ == '__main__':
    # See text content in the textfile.txt, 
    # https://repl.it/repls/AbandonedSoulfulNetbsd
    pattern = re.compile(r'^[0-9].*', re.M | re.S)
    for m in re.finditer(pattern, text): 
        print(m.group(0))

Желаемые результаты

Ну, я хочу взять все строки, которые на самом деле начинаются с цифры (независимо от того, чтоцифра), однако, я не знаю, есть ли регулярное выражение для получения каждой строки отдельно?Или вместо этого следует использовать что-то вроде re.split()?

ОБНОВЛЕНИЕ:

Этот шаблон регулярного выражения ^[0-9](.*?)$ дает мне 13 совпадений, https://regex101.com/r/Puggjm/2/ - однако я все еще не могу заставить его работатьв питоне.

1 Ответ

0 голосов
/ 28 декабря 2018

Вам нужно избавиться от флага s и вместо него можно использовать \d:

^\d.*$

Флаг с одной строкой изменяет поведение точки, поскольку теперь он также соответствует символу новой строки, следовательно- с вашим квантификатором - все.\d включает [0-9] (и некоторые другие цифры).См. ваше модифицированное демо .

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