Cela devrait être une tâche très facile en utilisant la bibliothèque re
. Cependant, je ne peux pas sembler diviser ma chaîne aux délimiteurs ]
et [
. J'ai déjà lu Splitting a string with multiple delimiters in Python, Python: Split string with multiple delimiters et Python: How to get multiple elements inside square brackets.Séparer à plusieurs délimiteurs sans délimiteur dans la liste
Ma chaîne:
data = "This is a string spanning over multiple lines.
At somepoint there will be square brackets.
[like this]
And then maybe some more text.
[And another text in square brackets]"
Il doit retourner:
['This is a string spanning over multiple lines.\nAt somepoint there will be square brackets.','like this', 'And then maybe some more text.', 'And another text in square brackets']
Un court exemple d'essayer:
data2 = 'A new string. [with brackets] another line [and a bracket]'
J'ai essayé:
re.split(r'(\[|\])', data2)
re.split(r'([|])', data2)
Mais les aurait soit donner lieu à avoir le délimiteur dans ma liste résultant ou une mauvaise liste tout à fait:
['A new string. ', '[', 'with brackets', ']', ' another line ', '[', 'and a bracket', ']', '']
Résultat devrait être:
['A new string.', 'with brackets', 'another line', 'and a bracket']
Comme condition spéciale tous les sauts de ligne et des espaces blancs avant et après un délimiteur doit être retiré et ne pas être inclus dans la liste non plus.
Oui, c'est une approche plus simple que les groupes que je n'ai pas capturés. –
Fonctionne très bien. Juste comme un ajout: Comment est-ce que je supprimerais tous les caractères de nouvelle ligne et les espaces blancs à la fin/début d'un élément? – cherrun
Ok. Deviner. Utiliser 'strip()' sur chaque élément de la liste. Merci encore. – cherrun