Lorsque vous utilisez la fonction de la tringle de Python String (), quelqu'un a-t-il un astuce tiftys pour traiter les articles entourés de guillemets en tant que mot non divisé?
Dis que je veux diviser seulement sur l'espace blanc et j'ai ceci : P>
['A', 'B', '"C"', 'DE', '"FE"', '"GH I JK L"', '""', '""', '"O P Q"', 'R']
3 Réponses :
Je vous suggère de rechercher avec re code> pour le modèle "[^"] * "et appliquez String.Split uniquement sur les pièces restantes. Vous pouvez implémenter une fonction récursive qui traite toutes les pièces de chaîne pertinentes. p>
Vous ne pourrez pas obtenir ce comportement avec str.split () code>. Si vous pouvez vivre avec l'analyse assez complexe, il fait (comme ignorer des citations doubles précédées d'une barre oblique), shlex.split () code> pourrait être ce que vous recherchez:
Merci Sven --- C'est exactement ce que je cherche!
génial, très utile. Merci!
@ROB: Pourquoi sans expulser si la solution Regexp est si simple?
@Paplog - malgré souvent la solution Easefront Easy, je n'ai pas encore rencontré personnellement un cas où Regex n'avait pas plus de coûts à long terme. En ce qui concerne ce cas particulier, j'étais assez certain que c'était un problème résolu et je pouvais juste le trouver - semble que Sven m'a pointé dans la bonne direction avec SHLEX.