Разделение строки с использованием пробелов и максимальной длины
3116 просмотра
3 ответа
Я хотел бы разделить строку аналогично .split()
(таким образом, получая в результате список), но более интеллектуальным способом: мне бы хотелось, чтобы она разбивалась на куски длиной до 15 символов, но не разбивались на средние слова. так:
string = 'A string with words'
[splitting process takes place]
list = ('A string with','words')
Строка в этом примере разделена между «with» и «words», потому что это последнее место, где вы можете разделить ее, и первый бит будет 15 символами или меньше.
Автор: chrism Источник Размещён: 12.11.2019 09:53Ответы (3)
29 плюса
>>> import textwrap
>>> string = 'A string with words'
>>> textwrap.wrap(string,15)
['A string with', 'words']
Автор: ghostdog74
Размещён: 12.04.2010 02:06
6 плюса
Вы можете сделать это двумя разными способами:
>>> import re, textwrap
>>> s = 'A string with words'
>>> textwrap.wrap(s, 15)
['A string with', 'words']
>>> re.findall(r'\b.{1,15}\b', s)
['A string with ', 'words']
Обратите внимание на небольшую разницу в обработке пространства.
Автор: jemfinch Размещён: 12.04.2010 02:061 плюс
Вы, вероятно, хотите использовать регулярное выражение. Модуль python re имеет split
функцию, но я думаю, что вам лучше обслужить, просто сопоставив группы.
>>> re.findall(r'(.{,15})\s(.*$)', 'A string wth words')
[('A string wth', 'words')]
[Изменить] Извините, пропустил точку, где вы хотите несколько кусков. Я собирался поместить здесь более сложное регулярное выражение, но модуль textwrap, приведенный выше, создан для этого. Я оставлю расширение регулярного выражения в качестве упражнения для вас, если вы решите.
Автор: JimB Размещён: 12.04.2010 02:06Вопросы из категории :
- python Обработка XML в Python
- python Как я могу использовать Python itertools.groupby ()?
- python Python: На какой ОС я работаю?
- python Как я могу создать непосредственно исполняемое кроссплатформенное приложение с графическим интерфейсом на Python?
- python Вызов функции модуля с использованием его имени (строки)
- python Звук Питона («Колокол»)
- string В чем разница между строкой и строкой в ??C #?
- string Почему в Ruby нет реального StringBuffer или StringIO?
- string Преобразовать строку в перечисление в C #
- string Преобразование списка <Integer> в список <String>
- string Самый эффективный способ объединения строк?
- string Экранирование строк HTML с помощью jQuery
- split Как разбить строку, чтобы я мог получить доступ к элементу x?
- split Как я могу токенизировать строку в C ++?
- split Есть ли в Python функция для разбиения слова на список?
- split Разделение разделенной точкой с запятой строки в словаре в Python
- split How do I split a string with any whitespace chars as delimiters?
- split Как разбить список на куски одинакового размера?