Остановить RegEx каждый раз, когда находит определенную строку

1

Я использую Python 3. У меня есть большой текстовый файл с 48 Закона о силе, я хочу настроить его для отправки по электронной почте одного закона одновременно моему другу, поэтому мне нужно разбить их в одной главе "за один раз в списке с использованием re.findall().

Каждая глава начинается с Закона 1, Закона 2, Закона 36 и т.д. Есть ли какой-либо способ с регулярными выражениями, я могу привести его в соответствие с законом и прекратить сопоставление при втором введении Закона?

Когда я пытаюсь что-то вроде list=re.findall(r'(Law.+)Law) он просто помещает весь текстовый файл в список [0].

Заранее благодарим за любую помощь, которую вы можете дать.

Теги:
string
python-3.x

3 ответа

0

Попробуйте Regex: ^Law \d+.*?(?=Law \d|\Z)

демонстрация

0

Как насчет

matches = re.split('Law [0-9]+', data)
chapters = matches[1:]
0
Law [0-9](.*?)(Law [0-9])+

Любой шанс, что это может помочь вам пройти правильный путь?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню