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 № 1Moż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"]