/ / python regex split string do każdego znaku, ale zachowaj wszystko w nawiasach - python, regex, string

python regex split string do każdego znaku, ale zachowaj wszystko w nawiasach - python, regex, string

Próbuję podzielić ciąg wygląda tak:

a = "sdfLKC[m2G]TO"

wynik wygląda następująco:

b = ["s", "d", "f", "L", "K", "C", "[m2G]", "T", "O"]

Moja wiedza na temat regex jest podstawowa, a mój kod jest

b = re.split(r"([.+?])", a)

ale wyjście jest ["sdfLKC", "[m2G]", "TO"], Chcę również podzielić każdą postać, jeśli nie są w nawiasach, każda pomoc zostanie doceniona.

Odpowiedzi:

1 dla odpowiedzi № 1

Możesz użyć re.findall aby znaleźć pojedynczy znak lub ciąg znaków między 2 nawiasami kwadratowymi.

>>> re.findall(r"w|[[^]]+]",a)
["s", "d", "f", "L", "K", "C", "[m2G]", "T", "O"]

1 dla odpowiedzi nr 2

Co powiesz na re.findall ? tj. dopasowywanie zamiast dzielenia.

>>> re.findall(r"[[^[]]*]|.", a)
["s", "d", "f", "L", "K", "C", "[m2G]", "T", "O"]