PyCraft
ИМХО, регулярка и только регулярка т.к. намного быстрее и намного нагляднее и понятнее
Регулярка не быстрее, одна только компилляция займет больше времени, чем проверка посимвольно. К тому же питоновский движок регулярки - на НКА, а это значит, что оператор “|” еще сильнее увеличит суммарное время выполнения (хотя не думаю, что производительность в данной задаче играет какую-то роль :) ). И последнее, вариант, предолженный
PyCraft (да и вообще, любой вариант, использующий запоминающие либо именные скобки), будет работать для строк, длиной не более ста символов - из-за ограничения на количество запоминающих скобок - не более ста в одном регулярном выражении, это легко проверить, если заглянуть в исходники. Если регулярка будет генерироваться динамически, то такая ситуация вполне жизненная.