Разделение строк по пробелам с сохранением подстрок в кавычках в Python
При обработке строк, содержащих как пробелы, так и подстроки в кавычках, может быть сложно аккуратно разделяйте строки, сохраняя при этом целостность цитируемых разделов. В Python модуль shlex предоставляет решение для этого конкретного сценария.
Использование shlex.split() для сохранения кавычек
Функция shlex.split() позволяет вам для разделения строки на пробелы, рассматривая подстроки в кавычках как единую единицу. Это означает, что пробелы внутри подстрок в кавычках будут игнорироваться, а текст в кавычках будет сохранен как один элемент в результирующем списке.
Пример использования:
Рассмотрите следующая строка:
this is "a test"
Чтобы разделить эту строку с помощью shlex.split(), просто импортируйте модуль и используйте следующий код:
import shlex
result = shlex.split('this is "a test"')
Переменная результата будет содержать следующий список:
['this', 'is', 'a test']
Пробелы внутри подстроки в кавычках («тест») были проигнорированы, а текст в кавычках был сохранен как один элемент.
Сохранение кавычек
Если вы также хотите сохранить сами кавычки в результирующем списке, вы можете передать аргумент ключевого слова posix=False в shlex.split().
Например:
result = shlex.split('this is "a test"', posix=False)
Это создаст следующий список:
['this', 'is', '"a test"']
Кавычки теперь сохранены как часть вывода.
В заключение, функция shlex.split() в Python предлагает удобный и эффективный способ разделения строк по пробелам, сохраняя при этом целостность подстрок в кавычках. Используя аргумент ключевого слова posix=False, вы также можете сохранить кавычки в результирующем списке.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3