Во-первых, вы можете значительно упростить регулярное выражение, оно будет более читабельным
(C|D|H|S|c|d|h|s)
-> [CDHScdhs]
([1-9]|1[0-3]|A|J|Q|K|a|j|q|k)
-> ([1-9]|1[0-3]|[AJQKajqk])
( |\-|\/)
-> [ \/-]
Затем вы можете использовать обратная ссылка , чтобы убедиться, что используется тот же разделитель, он представляет индекс группы для используйте, после упрощения, это группа 2
в моем регулярном выражении посмотрите
Также, поскольку все части одинаковы, вы могли бы упростить в
^([1-9]|1[0-3]|[AJQKajqk])[CDHScdhs]([ \/-])(([1-9]|1[0-3]|[AJQKajqk])[CDHScdhs]\2?)+$
Но установив флаг re.IGNORECASE
, вы можете удалить заглавные буквы
^([1-9]|1[0-3]|[ajqk])[cdhs]([ \/-])(([1-9]|1[0-3]|[ajqk])[cdhs]\2?)+$
==> FINAL REGEX