fox
II/IDEC networks ::
python.15
::
/ регекспы
Login
[#]
регекспы
Roman Yakovlev
(lenina,1) — All
2015-11-16 04:38:22
Вот {8} - это 8 символов
{8,20} - это от 8 до 20
а как сделать "или 8, или 20"?
[#]
Re: регекспы
vit01
(mira, 1) — Roman Yakovlev
2015-11-16 16:49:34
RY> а как сделать "или 8, или 20"?
Вроде бы, надо отдельные группы городить, но точно не уверен.
([A-Z]{8})|([A-Z]{20})
[#]
Re: регекспы
Andrew Lobanov
(station13, 1) — vit01
2016-01-22 08:44:14
RY>> а как сделать "или 8, или 20"?
vit01> Вроде бы, надо отдельные группы городить, но точно не уверен.
vit01> ([A-Z]{8})|([A-Z]{20})
Только в порядке уменьшения диапазонов:
([A-Z]{20}|[A-Z]{8})
Вот такой вариант точно рабочий и подходит для этой конкретной ситуации.
[#]
Re: регекспы
Andrew Lobanov
(station13, 1) — Рома
2016-01-22 08:56:15
AL> ====
AL> ([A-Z]{20}|[A-Z]{8})
AL> ====
Более красивое решение, но требующее питоновой обвязки:
s = " " + msgid + " " r = re.compile("( [a-zA-Z1-9]{8} | [a-zA-Z1-9]{20} )")
Включение пробелов избавит от включения больших по количеству символов строк.
// Спасибо flame из инстедоконфы.