[python] regulární výrazy

Ales Zoulek ales.zoulek na gmail.com
Úterý Červen 23 18:36:44 CEST 2015


A nebo to delat primo jednim regexpem s pojmenovanejma skupinama


In [14]: re.match(r"^(?P<cisla>[0-9]+)|(?P<pismena>[a-z]+)$",
"sadbc").groupdict()

Out[14]: {'cisla': None, 'pismena': 'sadbc'}

In [15]: re.match(r"^(?P<cisla>[0-9]+)|(?P<pismena>[a-z]+)$",
"21312321").groupdict()

Out[15]: {'cisla': '21312321', 'pismena': None}



On Tue, Jun 23, 2015 at 4:32 PM starenka . <starenka0 na gmail.com> wrote:

> pisu z hlavy, ale melo by to fungovat... ber to jako odrazovej mustek treba
>
>
> import re
> RES = dict(rele=re.compile(r'^[01]{10}$'),
>            napeti=re.compile(r'^[01]{2}$'),
>            teplota=re.compile(r'^(\d{4}\|){3}$'),
>            datum=re.compile(r'^\d{2}\.\d{2}\.20\d{2} \d{2}\:\d{2}:\d{2}$'))
>
>
> def meh(s):
>     for key, regexp in RES.items():
>         if re.match(regexp, s):
>             return key
>     else:
>         return None
>
>
> def test_meh():
>     assert meh('01') == 'napeti'
>     assert meh('0101010101') == 'rele'
>     assert meh('1256|1360|1150|') == 'teplota'
>     assert meh('23.06.2015 16:01:35') == 'datum'
>
>     assert not meh('blablabla')
>     assert not meh('02')
>     assert not meh('1234|123')
>     assert not meh('')
> ---
> In Perl you shoot yourself in the foot, but nobody can understand how
> you did it. Six months later, neither can you. | print
> 'aknerats'[::-1]
>
>
> 2015-06-23 16:11 GMT+02:00 "Ing. Vladislav Ludík" <vlada na ludik.cz>:
> > Zdravím,
> >
> > moje elektronika mi vrací po sériovém portu několik druhů dat:
> >
> > stav relé: "010101010101" - 10-ti místný výstup 0 nebo 1
> > stav napětí: "01" - 2-místný výstup 0 nebo 1
> > stav teplot: "1256|1360|1150|" 15-ti místný výstup tří skupin oddělených
> |
> > datum a čas: "23.06.2015 16:01:35" 19-ti místný výstup
> >
> > Složitě to otestovat umím.
> > Test by měl rozpoznat chybnou délku, formát a nelegální znaky testovaných
> > dat.
> > Chtěl bych použít co nejjednodušší test.
> > Zatím se mi to moc nedaří.
> > Poradí mi někdo ?
> >
> > Díky Vláďa
> >
> >
> > _______________________________________________
> > Python mailing list
> > python na py.cz
> > http://www.py.cz/mailman/listinfo/python
> >
> > Visit: http://www.py.cz
> _______________________________________________
> Python mailing list
> python na py.cz
> http://www.py.cz/mailman/listinfo/python
>
> Visit: http://www.py.cz
>
------------- další část ---------------
HTML příloha byla odstraněna...
URL: <http://www.py.cz/pipermail/python/attachments/20150623/06521bb5/attachment.html>


Další informace o konferenci Python