Есть строка вида:
MLIST 0x1 0x2 0x3 0x4 0,00 HELLO HI 0xa 854,166666666667 (a4) 1005,20833333333 (c1)
Необходимо сравнить по маске:
MLIST 0x1 0x2 0x3 0x4 * HELLO HI 0xa * (*) * (*)
Кто знает как реализовать?
Гугл молчит..
fata1exДа, несомненно! НО, в строке
Компилируете регулярку по маске и применяете её к строке. Если нашлось что-то, значит она подходит маске. По-моему, довольно логично.
abogdan'\d+'
эти значения могут быть равны и 1000 и 800 и 65
>>> import re >>> >>> s = 'MLIST 0x1 0x2 0x3 0x4 0,00 HELLO HI 0xa 854,166666666667 (a4) 1005,20833333333 (c1)' >>> >>> numpat = r'\d+(,\d+)?' >>> idpat = r'[a-z][0-9]' >>> >>> # MLIST 0x1 0x2 0x3 0x4 * HELLO HI 0xa * (*) * (*) ... pat = 'MLIST 0x1 0x2 0x3 0x4 {num} HELLO HI 0xa {num} ' \ ... '\({iden}\) {num} \({iden}\)$'.format(num=numpat, iden=idpat) >>> >>> m = re.match(pat, s) >>> if m: ... print(m.group(0)) ... MLIST 0x1 0x2 0x3 0x4 0,00 HELLO HI 0xa 854,166666666667 (a4) 1005,20833333333 (c1) >>>
>>> import re >>> >>> s = 'MLIST 0x1 0x2 0x3 0x4 0,00 HELLO HI 0xa 854,166666666667 (a4) 1005,20833333333 (c1)' >>> >>> # MLIST 0x1 0x2 0x3 0x4 * HELLO HI 0xa * (*) * (*) ... pat = 'MLIST 0x1 0x2 0x3 0x4 {0} HELLO HI 0xa {0} ' \ ... '\({1}\) {0} \({1}\)$'.format(r'\d+(,\d+)?', r'[a-z][0-9]') >>> >>> m = re.match(pat, s) >>> if m: ... print(m.group(0)) ... MLIST 0x1 0x2 0x3 0x4 0,00 HELLO HI 0xa 854,166666666667 (a4) 1005,20833333333 (c1) >>>
>>> s = 'MLIST 0x1 0x2 0x3 0x4 0,00 HELLO HI 0xa 854,166666666667 (a4) 1005,20833333333 (c1)' >>> >>> # MLIST 0x1 0x2 0x3 0x4 * HELLO HI 0xa * (*) * (*) ... pat = 'MLIST 0x1 0x2 0x3 0x4 {num} HELLO HI 0xa {num} ' \ ... '\({iden}\) {num} \({iden}\)$'.format( ... num=r'\d+(,\d+)?', iden=r'[a-z][0-9]' ... ) >>> >>> m = re.match(pat, s) >>> if m: ... print(m.group(0)) ... MLIST 0x1 0x2 0x3 0x4 0,00 HELLO HI 0xa 854,166666666667 (a4) 1005,20833333333 (c1) >>>