每 n 个字符拆分字符串但不拆分单词
Split string every n characters but without splitting a word
假设我在 python
中有这个:
orig_string = 'I am a string in python'
如果我们假设我想每 10 个字符拆分这个字符串但不拆分单词,那么我想要这个:
strings = ['I am a ', 'string in ', 'python']
或者这个(分割处没有空格):
strings = ['I am a', 'string in', 'python']
因此,拆分应该恰好在单词之前进行,否则在每种情况下都会被拆分。
否则,我会有这个:
false_strings = ['I am a str', 'ing in pyt', 'hon']
只是提一下,在我的例子中,我想每 15k 个字符执行一次,但我在上面给出了每 10 个字符的示例,以便可以在此处以简洁的方式编写它。
最有效的方法是什么?
您可以使用 built-in textwrap.wrap
函数 (doc):
orig_string = 'I am a string in python'
from textwrap import wrap
print(wrap(orig_string, 10))
打印:
['I am a', 'string in', 'python']
假设我在 python
中有这个:
orig_string = 'I am a string in python'
如果我们假设我想每 10 个字符拆分这个字符串但不拆分单词,那么我想要这个:
strings = ['I am a ', 'string in ', 'python']
或者这个(分割处没有空格):
strings = ['I am a', 'string in', 'python']
因此,拆分应该恰好在单词之前进行,否则在每种情况下都会被拆分。
否则,我会有这个:
false_strings = ['I am a str', 'ing in pyt', 'hon']
只是提一下,在我的例子中,我想每 15k 个字符执行一次,但我在上面给出了每 10 个字符的示例,以便可以在此处以简洁的方式编写它。
最有效的方法是什么?
您可以使用 built-in textwrap.wrap
函数 (doc):
orig_string = 'I am a string in python'
from textwrap import wrap
print(wrap(orig_string, 10))
打印:
['I am a', 'string in', 'python']