使用空格分隔符和最大长度拆分字符串

时间:2010-04-12 13:58:16

标签: python string split

我想以与.split()类似的方式分割字符串(因此产生一个列表)但是以更聪明的方式:我希望将它拆分成最多15个的块字符,但不是中间分词所以:

string = 'A string with words'

[splitting process takes place]

list = ('A string with','words')

此示例中的字符串分为“with”和“words”,因为这是您可以拆分它的最后一个位置,第一个位是15个字符或更少。

3 个答案:

答案 0 :(得分:29)

>>> import textwrap
>>> string = 'A string with words'
>>> textwrap.wrap(string,15)
['A string with', 'words']

答案 1 :(得分: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']

请注意空间处理方面的细微差别。

答案 2 :(得分:1)

您可能希望使用正则表达式。 python re模块有一个split函数,但我认为只需匹配组就可以提供更好的服务。

>>> re.findall(r'(.{,15})\s(.*$)', 'A string wth words')
[('A string wth', 'words')]

[编辑]抱歉,错过了你想要多个块的地方。我打算在这里放一个更复杂的正则表达式,但上面引用的textwrap模块是为此而制作的。如果你愿意的话,我会把正则表达式作为练习延伸。