Перевернуть строку в скобках регулярным выражением
Подскажите, пожалуйста. Дана строка, и надо перевернуть только те фрагменты строки, которые находятся в круглых скобках. Python. Для наглядности:
"h(el)lo" >> "h(le)lo";
"h(lle)o W(lro)d" >> "h(ell)o W(orl)d"
Я делаю следующим образом:
re.sub(r"\b[a-zA-Z ]+\b", lambda m:m.group(0)[::-1], stroka)
Но данная регулярка переворачивает все символы - и в скобках и без. "one two (three) four" >> "owt eno (eerht) ruof"
Ответы (1 шт):
Автор решения: Stanislav Volodarskiy
→ Ссылка
Пара \(, \) - это просто скобки в строке. ([^)]*) - группа символов внутри скобок. Принимаются любые символы кроме закрывающей скобки. Группу можно получить внутри lambda-выражения в виде m.group(1):
re.sub(r'\(([^)]*)\)', lambda m: f'({m.group(1)[::-1]})', 'h(lle)o W(lro)d')
'h(ell)o W(orl)d'