Python:string.rfind()是否包含任何空格字符?

Python:string.rfind()是否包含任何空格字符?,python,string,Python,String,我正在尝试将文本分割成块发送到谷歌的文本到语音引擎(每个查询最多接受5000个字符)。我想在一个最大长度为5000个字符的空白字符上拆分更长的文件。我的当前代码(使用块大小为15而不是5000): 有没有一种方法可以将chunk.rfind(“”)替换为接受任何空格字符的内容 i = -1 while (true): if chunk[i] in ['\n','\r','\t', ' ']: end = i else:

我正在尝试将文本分割成块发送到谷歌的文本到语音引擎(每个查询最多接受5000个字符)。我想在一个最大长度为5000个字符的空白字符上拆分更长的文件。我的当前代码(使用块大小为15而不是5000):

有没有一种方法可以将
chunk.rfind(“”)
替换为接受任何空格字符的内容

    i = -1
    while (true):
        if chunk[i] in ['\n','\r','\t', ' ']:
            end = i
        else:
            i -= 1
        

这样的东西对你有用吗?它将从块的末尾扫描任何空白字符。

这最适合使用正则表达式模式,该模式将非空白字符后跟最多14个字符(对于最多15个字符的块)与前瞻模式相匹配,以确保后跟空白字符或字符串的结尾:

import re
text = "This is just a text string for demonstrative purposes."
print(re.findall(r'\S.{,14}(?=\s|$)', text))
这将产生:

['This is just a', 'text string for', 'demonstrative', 'purposes.']

这在javascript中使用了一个正则表达式,但应该可以方便地移植到python中:您可以反转字符串并使用有限制的
re.split
。然后,您可以在末尾添加
['This is just a', 'text string for', 'demonstrative', 'purposes.']