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 . <staren...@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" <vl...@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@py.cz > > http://www.py.cz/mailman/listinfo/python > > > > Visit: http://www.py.cz > _______________________________________________ > Python mailing list > python@py.cz > http://www.py.cz/mailman/listinfo/python > > Visit: http://www.py.cz >
_______________________________________________ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz