Fractionner une chaîne par antislash en python
Simple question, mais j'ai du mal avec elle pour trop de temps. Fondamentalement, je veux découper une chaîne en \ (barre oblique inverse).
a = "1"
Tenté d'échapper à la la barre oblique inverse, mais il ne semble pas fonctionner:
print(a.split('\'))
print(a.split('"\"'))
print(a.split('\\'))
print(a.split('"\\"'))
Je veux obtenir ce résultat:
['1','2','3','4']
Merci beaucoup à l'avance
source d'informationauteur user3184086
Vous devez vous connecter pour publier un commentaire.
Vous avez la bonne idée de s'échapper avec les barres obliques inverses, mais en dépit de la façon dont il semble, votre chaîne d'entrée ne possède pas les barres obliques inverses. Vous avez besoin de s'échapper dans l'entrée, trop!
Vous pouvez également utiliser un raw littéral de chaîne pour l'entrée, si elle est susceptible d'avoir de nombreuses barres obliques inverses. Cette notation est beaucoup plus propre à regarder (OMI), mais il possède certaines limitations: lire les docs!
Si vous avez de la
a
ailleurs, eta.split('\\')
n'est pas convenablement divisés sur le visible barres obliques inverses, cela signifie que vous avez quelque chose d'autre, il y a la place d'une barre oblique inverse. Essayezprint(repr(a))
pour voir ce que le "littérale" de la chaîne ressemble.Vous pouvez diviser une chaîne par une barre oblique inverse à l'aide de
a.split('\\')
.La raison pour laquelle cela ne fonctionne pas dans votre cas est que
\x
dans votre missiona = "1\2\3\4"
est interprété comme un nombre octal. Si vous préfixe de la chaîne der
vous obtiendrez le résultat escompté.Selon cette réponse:
https://stackoverflow.com/a/2081708/3893465
vous aurez besoin pour échapper à l'antislash avant le fractionnement en tant que tel: