В тексте, который содержит подстроку, такую как aa:bb:11:22
Я хочу реализовать регулярное выражение в Python, которое соответствует указанному фрагменту, независимо от его длины.
Используя grep
, можно было бы сделать grep -E "([0-9a-f]{2}:)+[0-9a-f]{2}"
Что эквивалентно группе, повторенной несколько раз (<regexp>)+
в Python?
РЕДАКТИРОВАТЬ
Используя следующую строку:
s2 = 'Public-Key:(1024bit)Modulus:00:aa:18:ab:a4:3b:50:de:ef:38:59:8f:af:87:d2:ab:63:4e:45:71:c1:30:a9:bc:a7:b8:78:29:74:14:fa:ab:8b:47:1b:d8:96:5f:5c:9f:c3:81:84:85:ea:f5:29:c2:62:46:f3:05:81:64:a8:de:19:c8:c3:38:be:54:96:cb:ae:b0:59:dc:0b:35:81:43:b4:4a:35:44:9e:b2:64:11:33:21:a4:55:bd:7f:de:3f:ac:91:9e:94:b5:6f:b9:bb:4f:65:1c:db:23:ea:d4:39:d6:cd:52:3e:b0:81:91:e7:5b:35:fd:13:a7:41:9b:30:90:f2:47:87:bd:4f:4e:19:67Exponent:65537(0x10001)'
со следующей командой в Python
re.findall("([0-9a-f]{2}:)+[0-9a-f]{2}", s2)
Я получаю
19:
То, что я хочу получить, и я получаю с grep
, это:
> grep -E "([0-9a-f]{2}:)+[0-9a-f]{2}"
<paste_whole_string>
Result highlighted by grep:
00:aa:18:ab:a4:3b:50:de:ef:38:59:8f:af:87:d2:ab:63:4e:45:71:c1:30:a9:bc:a7:b8:78:29:74:14:fa:ab:8b:47:1b:d8:96:5f:5c:9f:c3:81:84:85:ea:f5:29:c2:62:46:f3:05:81:64:a8:de:19:c8:c3:38:be:54:96:cb:ae:b0:59:dc:0b:35:81:43:b4:4a:35:44:9e:b2:64:11:33:21:a4:55:bd:7f:de:3f:ac:91:9e:94:b5:6f:b9:bb:4f:65:1c:db:23:ea:d4:39:d6:cd:52:3e:b0:81:91:e7:5b:35:fd:13:a7:41:9b:30:90:f2:47:87:bd:4f:4e:19:67