/ / python regex divide la cadena en cada carácter pero mantiene todo entre corchetes: python, regex, string

Python regex divide la cadena en cada char pero mantiene todo entre corchetes - python, regex, string

Estoy tratando de dividir una cadena como esta:

a = "sdfLKC[m2G]TO"

la salida se ve así:

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

Mi conocimiento de expresiones regulares es básico, y mi código es

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

pero la salida es ["sdfLKC", "[m2G]", "TO"]También quiero dividir cada personaje si no están entre corchetes, cualquier ayuda será apreciada.

Respuestas

1 para la respuesta № 1

Puedes usar re.findall para encontrar cualquier carácter de una sola palabra o una cadena entre 2 corchetes.

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

1 para la respuesta № 2

Qué pasa re.findall ? es decir, hacer coincidir en lugar de dividir.

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