Maison  >  Article  >  développement back-end  >  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
DDDoriginal
2024-11-06 08:58:02960parcourir

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>

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>

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!

Déclaration:
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