s = "Kadu (b, a), Dadu, Adu (y, i)"
Мне нужно, чтобы эта строка была отсортирована следующим образом:
Adu (i, y), Dadu, Kadu (a, b)
Дополнительное объяснение для тех, у кого есть еще одна минута: как переводчик, мне иногда приходится переводить отсортированные по алфавиту списки, разделенные запятыми, в которых некоторые элементы имеют подсписки в скобках, также отсортированные по алфавиту. После перевода алфавитный порядок меняется, поэтому мне приходится прибегать ко всем, используя примитивные инструменты, такие как Word. Я пытаюсь написать себе код, который может помочь мне автоматизировать это. Я очень новичок в программировании, я могу делать только пэчворк, используя то, что нахожу здесь, но я учусь.
Благодаря некоторому коду Regex, который я использовал в Python, я смог правильно разделить строку, отсортировать ее и затем снова присоединиться к списку.
На данный момент я могу получить это:
Adu (y, i), Dadu, Kadu (b, a)
Как видите, основной список хорошо отсортирован, но то, что внутри скобок, остается нетронутым.
import re
s = "Kadu (b, a), Dadu, Adu (y, i)"
unsorted = re.split(r',\s*(?![^()]*\))', s)
unsorted.sort()
result = ", "
result = result.join(unsorted)
print(result)
Теперь, я думаю, мне нужно написать код Regex, который обрабатывает только то, что в скобках. Мне не удалось найти кусок кода, который я мог бы адаптировать для этого. Кто-нибудь знает, как мне это сделать?