Python вернуть строку отформатировав с regexp
Есть строка подобно "2r-rj1225-f11e-12-x-w"
Нужно ее переформатировать в следующий формат: все группы по 5 символов, но первая может оставаться, если менее 5 символов, также и последняя может остаться с менее 5 символов
что выше-приведенную строку отформатирует в следующий результат: "2r-rj122-5f11e-12xw"
import re
string = "2r-rj1225-f11e-12-x-w"
baseLength = 5
def formatKey(string: str, baseLength: int) -> str:
p = re.compile(r"{1,baseLength}[a-zA-Z0-9]{baseLength}[a-zA-z0-9]+")
formatted = '-'.join(p.match(string))
return formatted
print(f'The reformatted string is {formatKey(string, baseLength)}')
конечно, код выше не работает. Хотелось бы избежать использования '-'.join и просто отформатировать строку как в этом псевдокоде: regexp(re.compile('[a-z]FORMATREGEXP'), string) где FORMATREGEXP есть regexp, выполняющим задание.
Уточнение: вероятное решение -- это использовать re.sub(pattern, repl, string) функцию: "The sub() function searches for the pattern in the string and replaces the matched strings with the replacement", просто и в одну строчку.