У меня есть 2 строки, и я хотел бы получить результат, который дает мне все до первого '\n\n'.
'1. Меллеклет в 37/2018. (XI. 13.) MNB rendelethez\n\nÁltalános kitöltési előírások\nI.\nA felügyeleti jelentésre vonatkozó általános szabályok\n\n1.
12. Меллеклет 40/2018. (XI. 14.) MNB rendelethez\n\nÁltalános kitöltési előírások\n\nKapcsolódó jogszabályok\naz Önkéntes Kölcsonös Biztosító Pénztáracról szóló 1993. évi XCVI. törvény (a továbbiakban: Öpt.);\na személyi jövedelemadóról szóló 1995. évi CXVII.
Я пытался объединить 2 регулярных выражения, чтобы решить мою проблему; однако, я мог быть на плохом пути также. Может быть, функция могла бы быть проще, я не знаю.
Я прикрепляю тот, который говорит, что я нахожу символ 'z'
extended regex : [\z+$]
I guess finding the first number is: [^0-9.].+
Моя проблема в том, как объединить эти два выражения, чтобы получить строку между ними?
Есть ли более эффективный способ сделать это?
@WiktorStribiżew ты гений!!! Большое спасибо!





Вы можете использовать
re.findall(r'^(\d.*?)(?:\n\n|$)', s, re.S)
Или с re.search, так как кажется, что ожидается только одно совпадение:
m = re.search(r'^(\d.*?)(?:\n\n|$)', s, re.S)
if m:
print(m.group(1))
См. демонстрация Python.
Детали узора
^ - начало строки(\d.*?) - Группа захвата 1: цифра, а затем любые символы 0+, как можно меньше(?:\n\n|$) — незахватывающая группа, соответствующая либо двум символам новой строки, либо концу строки.
Попробуйте
re.findall(r'^(\d.*?)(?:\n\n|$)', s, re.S)