多个匹配正则表达式正面前瞻

Multiple matches regex positive lookahead

我正在努力为我的抓取后端创建正则表达式模式。我想创建一组日菜单(周一至周五)。对于每场比赛(天),我想维护日期和列出的膳食。到目前为止我已经创建了:

\d+\.\d+\.\d+([\s\S]*?)(\d+\.\d+\.\d+|X)

我的模式有问题:

  1. 我无法创建不包含第二天日期的模式
  2. 当日期包含在上一个匹配项中时,上述问题会导致问题
  3. 我不知道如何表示星期五 (X atm) 的字符串结尾

编辑:用于Javascript

Pondělí
                                31.8.2020
                            
                        Každý všední den 11:00 - 15:00

                    Polévka:
                                0,25l Zeleninová polévka se smetanou (7,9)
                            
                                20,-
                            
                                0,25l Kapustová s klobásou 
                            
                                20,-
                            1150g Grilovaná kuřecí prsa s citronovým kuskusem se zeleninou (1,9)
                                
                                    
                                        109,-
                                    
                                2150g Uzená kýta se smetanovou omáčkou s křenem, kynutý knedlík (1,3,7)
                                
                                    
                                        99,-
                                    
                                3300g Strozzapreti se sýrovou omáčkou, ořechy a kousky kuřecích prs (1,3,7,8)
                                
                                    
                                        109,-
                                    
                                4250g Cizrna na zelenině, curry koření, kokosovém mléce a koriandru s bulgurem s dýňovými semínky (1)
                                
                                    
                                        99,-
                                    
                                5250g Hot dog s vídeňskými párky, fazolový salát, hořčicová majonéza, rukola, hranolky (1,3,10)
                                
                                    
                                        119,-
                                    
                                6250g Listový salát s okurkem, rajčetem, barevnou paprikou, do růžova grilovanou vepřovou panenkou, hořčično-medový dresing (10,12)
                                
                                    
                                        119,-
                                    
                                Úterý
                                1.9.2020
                            
                        Každý všední den 11:00 - 15:00
.
                    Polévka:
                                0,25l Bramborový krém s brynzou (7)
                            
                                20,-
                            
                                0,25l Slepičí vývar s masem, zeleninou a nudlemi (1,3,9)
                            
                                20,-
                            1150g Kuřecí steak se zeleninou na másle, bramborová kaše (7,9)
                                
                                    
                                        99,-
                                    
                                2150g Hovězí tokáň s divokou rýží (12)
                                
                                    
                                        109,-
                                    
                                3300g Parmazánové risotto s karamelovou cibulí, kousky vepřové panenky, rukola (7)
                                
                                    
                                        109,-
                                    
                                4150g Čočková sekaná s uzeným tofu, bramborová kaše se sójovým mlékem, okurek (1,3,6,12)        
                                
                                    
                                        109,-
                                    
                                5250g Hot dog s vídeňskými párky, fazolový salát, hořčicová majonéza, rukola, hranolky (1,3,10)
                                
                                    
                                        119,-
                                    
                                6250g Listový salát s okurkem, rajčetem, barevnou paprikou, do růžova grilovanou vepřovou panenkou, hořčično-medový dresing (10,12)
                                
                                    
                                        119,-
                                    
                                Středa
                                2.9.2020
                            
                        Každý všední den 11:00 - 15:00
.
                    Polévka:
                                0,25l Hovězí vývar s masem, zeleninou a nudlemi (1,3,9)
                            
                                20,-
                            
                                0,25l Krém z dýně, mrkve a červeného kari s kokosovým mlékem
                            
                                20,-
                            1150g Burger s vepřovým trhaným masem v BBQ, coleslaw, čedar, hranolky (1,3,6,7,10,11,12,13)
                                
                                    
                                        129,-
                                    
                                2150g Vepřová líčka na černém pivě a jablkách, šťouchaný brambor (1) 
                                
                                    
                                        109,-
                                    
                                3300g Orecchiette s krůtím ragú na zelenině a rajčatech se sušenými houbami, parmazán (1,3,7,9)
                                
                                    
                                        109,-
                                    
                                4250g Bramborový gratin s dýní, listový salát (3,7)
                                
                                    
                                        99,-
                                    
                                5250g Hot dog s vídeňskými párky, fazolový salát, hořčicová majonéza, rukola, hranolky (1,3,10)
                                
                                    
                                        119,-
                                    
                                6250g Listový salát s okurkem, rajčetem, barevnou paprikou, do růžova grilovanou vepřovou panenkou, hořčično-medový dresing (10,12)
                                
                                    
                                        119,-
                                    
                                Čtvrtek
                                3.9.2020
                            
                        Každý všední den 11:00 - 15:00
.
                    Polévka:
                                0,25l Frankfurtská s párkem (7)
                            
                                20,-
                            
                                0,25l Hráškový krém s mátou (7)
                            
                                20,-
                            1150g Vepřová krkovice alla porchetta, šťouchaný brambor se zakysanou smetanou (7,12)
                                
                                    
                                        109,-
                                    
                                2150g Kuřecí nudličky s uzenou paprikou, rajčaty a cizrnou, jasmínová rýže 
                                
                                    
                                        99,-
                                    
                                3300g Spaghetti „Amatriciana“ (červená cibule, pancetta, tomatová om., česnek, chilli), parmazán (1,3,7)
                                
                                    
                                        109,-
                                    
                                4250g Mexické černé fazole se zeleninou a kukuřicí, tortila, pikantní dip salsa verde (1,7,9)
                                
                                    
                                        99,-
                                    
                                5250g Hot dog s vídeňskými párky, fazolový salát, hořčicová majonéza, rukola, hranolky (1,3,10)
                                
                                    
                                        119,-
                                    
                                6250g Listový salát s okurkem, rajčetem, barevnou paprikou, do růžova grilovanou vepřovou panenkou, hořčično-medový dresing (10,12)
                                
                                    
                                        119,-
                                    
                                Pátek
                                4.9.2020
                            
                        Každý všední den 11:00 - 15:00
.
                    Polévka:
                                0,25l Česneková se zeleninou a kroupami, uzené maso (1,9)
                            
                                20,-
                            
                                0,25l Fenyklová 
                            
                                20,-
                            1150g Smažený sýr se šunkou, vařené brambory, tatarská omáčka (1,3,7,10,12)
                                
                                    
                                        99,-
                                    
                                2150g Dušený vepřový plátek s okurkou, vejcem a párkem, jasmínová rýže (3,12)
                                
                                    
                                        99,-
                                    
                                3300g Penne s cuketovou omáčkou se slaninou, sušená rajčata, parmazán, polníček (1,3,7)
                                
                                    
                                        109,-
                                    
                                4250g Šumavský toč (kynutá bramborová buchta), houbové soté (1,3,7)
                                
                                    
                                        99,-
                                    
                                5250g Hot dog s vídeňskými párky, fazolový salát, hořčicová majonéza, rukola, hranolky (1,3,10)
                                
                                    
                                        119,-
                                    
                                6250g Listový salát s okurkem, rajčetem, barevnou paprikou, do růžova grilovanou vepřovou panenkou, hořčično-medový dresing (10,12)
                                
                                    
                                        119,-

提前致谢!

要获取日期、日期和菜单,您可以使用 3 个捕获组:

(\S+)\s+(\d{1,2}\.\d{1,2}\.\d{4}.*)((?:\r?\n(?![^\S\r\n]*\S+\s*\d{1,2}\.\d{1,2}\.{4}).*)*)

模式将匹配

  • (\S+) 捕获 组 1,匹配 1+ 个非空白字符
  • \s+ 匹配 1+ 个空白字符
  • ( 捕获 第 2 组
    • \d{1,2}\.\d{1,2}\.\d{4}.* 匹配 'date like' 模式
  • ) 关闭组 2
  • ( 捕获 第 3 组
    • (?:非捕获组
      • \r?\n 数学换行符
      • (?! 否定前瞻
        • [^\S\r\n]*\S+\s* 匹配 0+ 个没有换行符的空格
        • \d{1,2}\.\d{1,2}\.{4}
      • ) 关闭前瞻
      • .*匹配整行
    • )*关闭群重复0+次
  • ) 关闭组 3

Regex demo