Это должно непосредственно найти совпадение 4 или 5 символов.Если я неправильно понял, что вы ищете, уточните.
import re
s = """TEST IC ITMI12CR01 GRATH1CR01, ALTIR1AB02
TEST-ICITMI12CR01 BE5253, BE2178 and BE40035 towards GRATH1CR01, ROTIM1CR01 and ALTIR1AB02 are down
TEST-IC Multiple links are TRIST1AB01<><>ROTIM1CR01<>GRATH1CR01<>ITMI12CR01
TEST IC ITMI12CR01 links to GRATH1CR01, ALTIR1AB02"""
l = [match.group(1) if match.group(1) else match.group(2)
for match in re.finditer(r'\b(?:([A-Z]{4})(?:[0-9][A-Z0-9]{5})|([A-Z]{5})(?:[0-9][A-Z0-9]{4}))\b', s)
]
print(l)
Отпечатки:
['ITMI', 'GRATH', 'ALTIR', 'GRATH', 'ROTIM', 'ALTIR', 'TRIST', 'ROTIM', 'GRATH', 'ITMI', 'ITMI', 'GRATH', 'ALTIR']
Я ищу либо:
- 4 альфасимволы, за которыми следует 1 цифра, за которой следуют 5 буквенно-цифровых символов или.
- 5 букв, за которыми следует 1 цифра, за которой следуют 4 буквенно-цифровых символа.
См. демонстрацию