[python] Regulární výraz s proměnnou

Petr Prikryl PrikrylP na skil.cz
Středa Červen 28 11:57:22 CEST 2006


Martin Jedlička
> RegVyrazSCH = 
> re.compile(r"(?P<souborsch>\d{4}-\d{1,3}-[-a-zA-Z0-9]+-\d{1,3}
> \.sch)")    
> # hledany soubor sch
> PocetSouboru = len(SouboryHW)
> # hledani pozadovaneho souboru sch
>         for i in range(0, PocetSouboruHW):
>             if RegVyrazSCH.search(SouboryHW[i]):
>                 DPS = 
> RegVyrazPCB.search(SouboryHW[i]).group('souborsch')

Pokud je SouboryHW nějaká kolekce jmen souborů
(odhaduji to na seznam), nebylo by jednodušší 
napsat cyklus takhle...?

for soubor in SouboryHW:
    if RegVyrazSCH.search(soubor):
        DPS = RegVyrazPCB.search(soubor).group('souborsch')

Mají se tam používat dva regulární výrazy?
Není to překlep? Nemělo to vypadat nějak takto?

i = 5
s = "%04d" % i
RegVyrazSCH = re.compile(
    r"(?P<souborsch>" + s +\
    r"-\d{1,3}-[-a-zA-Z0-9]+-\d{1,3}\.sch)")

for soubor in SouboryHW:
    m = RegVyrazSCH.search(soubor) 
    if m is not None:
        DPS = m.group('souborsch')


pepr


Další informace o konferenci Python