Maison > développement back-end > Tutoriel Python > Comment puis-je diviser une chaîne par espaces tout en préservant les sous-chaînes entre guillemets en Python ?

Comment puis-je diviser une chaîne par espaces tout en préservant les sous-chaînes entre guillemets en Python ?

DDD
Libérer: 2024-11-06 08:58:02
original
1064 Les gens l'ont consulté

How can I split a string by spaces while preserving quoted substrings in Python?

Diviser une chaîne par espaces tout en préservant les sous-chaînes entre guillemets en Python

Lorsque vous travaillez avec des chaînes contenant à la fois des espaces et des guillemets, cela peut être difficile pour les diviser sans perdre l'intégrité des sous-chaînes citées. En Python, vous pourriez initialement envisager d'utiliser la méthode standard string.split(), mais cela séparerait la chaîne à chaque espace, quels que soient les guillemets.

Pour résoudre ce problème, Python fournit une solution pratique grâce à son shlex module, en particulier la fonction split(). La fonction split() vous permet de diviser une chaîne en fonction des espaces tout en ignorant ceux contenus dans les segments entre guillemets.

Considérez l'exemple de chaîne : "ceci est "un test"." Pour le diviser à l'aide de shlex.split(), appelez-le simplement avec la chaîne comme argument :

<code class="python">import shlex
shlex.split('this is "a test"')</code>
Copier après la connexion

Le résultat sera une liste de trois éléments : ['this', 'is', 'a test']. La sous-chaîne citée est conservée en tant qu'élément unique.

Vous pouvez personnaliser davantage le comportement de shlex.split() en passant l'argument de mot-clé posix=False. Cela l'empêchera de supprimer les guillemets autour de la sous-chaîne :

<code class="python">shlex.split('this is "a test"', posix=False)</code>
Copier après la connexion

Dans ce cas, le résultat serait : ['this', 'is', '"a test"'].

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal