[#] регекспы
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 из инстедоконфы.