结合2个正则表达式

时间:2019-07-03 07:25:43

标签: regex python-3.x

我有2个字符串,我想得到一个结果,该结果为我提供第一个'\ n \ n'之前的所有内容。

'1。 mellékleta 37/2018。 (XI。13)MNB rendelethez \ n \nÁltalánoskitöltésielőírások\ nI。\nFelügyeletijelentésrevonatkozóáltalánosszabályok\ n \ n1。

'12。 melléklet40/2018。 (XI。14)MNB rendelethez \ n \nÁltalánoskitöltésielőírások\ n \nKapcsolódójogszabályok\ nazÖnkéntesKölcsönösBiztosítóPénztárakrólszóló,1993年。 törvény(továbbiakban:Öpt。); \ naszemélyijövedelemadórólszóló1995年。ÉviCXVII。

我一直试图结合两个正则表达式来解决我的问题;但是,我也可能走错了路。我不知道,也许某个功能可能会更容易。

我在附上一个说我正在找到字符“ z”的字

extended regex : [\z+$]
I guess finding the first number is: [^0-9.].+

我的问题是如何组合这两个表达式以获取它们之间的字符串?

有没有更有效的方法?

1 个答案:

答案 0 :(得分:1)

您可以使用

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 demo

模式详细信息

  • ^-字符串的开头
  • (\d.*?)-捕获组1:一个数字,然后捕获任意0个以上的字符,并尽可能少
  • (?:\n\n|$)-与两个换行符或字符串结尾匹配的非捕获组。

请参见regex graph

enter image description here