[python] regulární výrazy

starenka . starenka0 na gmail.com
Úterý Červen 23 16:31:39 CEST 2015


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 at 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 at py.cz
> http://www.py.cz/mailman/listinfo/python
>
> Visit: http://www.py.cz


Další informace o konferenci Python