Необходимо проверить/найти
Так найти или проверить ?
Ну и собственно зачем городить огород если нет понимания как эта фигня однострочная работает
Разбей принтами по скобкам и увидишь что в одним из мест на вход подается не то что ожидается
В твоем случае ты не видишь этой ошибки потому что тесты, скорее всего, проводишь со строкой в которой нет совпадений. Если же нет то почему не выложил ошибку вопрос опять же к тебе
В общем разбей задачу на части а потом уже городи всякие однострочники
Исходные данные
import re
source_name = '34234 334234'
pat_0 = r'\d+'
pat_1 = r'[А-В]Т\-[А-В]Ш\-[А-В]Д'
pat_2 = r'[А-В]Т\-[А-В]Ш'
pat_3 = r'[А-В]\-[А-В]Ш'
pat_4 = r'\s[А-В]\-'
pat_5 = r'\/[А-В]\-'
patterns = [pat_0, pat_1, pat_2, pat_3, pat_4, pat_5]
# Проверить
found = False
for p in patterns:
if re.search(p, source_name):
found = True
break;
if found:
print("Yes")
else:
print("No")
# Найти
for f in list(map(lambda p: re.findall(p, source_name), patterns)):
for v in [i for i in f if f]:
print(v)