PHP:将一个大字符串按一定的字符分割成尽可能大的块

PHP:将一个大字符串按一定的字符分割成尽可能大的块,php,regex,Php,Regex,我正在实现Google Translation API,一次最多只需要5000个字符,所以我需要将较大的文档拆分为较小的文档,并发送多个API请求 我需要把我的内容分割成尽可能长的块(但不到5000个),这是分裂的,希望不是在一个句子的中间,这使得谷歌的翻译很难处理。 因此,我想给我的方法一个在拆分时应该查找的字符数组 (点间距) 有什么好方法可以做到这一点呢?默认情况下,Regexp是贪婪的 .{0,4980}(\<\/div\>|\<\/p\>|\<

我正在实现Google Translation API,一次最多只需要5000个字符,所以我需要将较大的文档拆分为较小的文档,并发送多个API请求

我需要把我的内容分割成尽可能长的块(但不到5000个),这是分裂的,希望不是在一个句子的中间,这使得谷歌的翻译很难处理。

因此,我想给我的方法一个在拆分时应该查找的字符数组


  • (点间距)

有什么好方法可以做到这一点呢?

默认情况下,Regexp是贪婪的

.{0,4980}(\<\/div\>|\<\/p\>|\<\/section\>|\<\/blockquote\>|\<\/br\>|\.\s)
{04980}(\\\\\\\\\\\\\\\\\\\.\s)

应该给出以一个分隔符结尾的最长字符串。

在解析HTMLI时,使用DOM而不是正则表达式是更好的方法。我不确定文档是否包含任何HTML。事实上,它很可能只是纯文本。@SørenBeckJensen你认为
是什么?!?如果标签在那里,那么就使用它。但是不能保证会有任何DOM标记。PHP(和RegEx Buddy)似乎不支持RegEx的[04980]部分?
[]
是字符类,
{}
是范围<代码>*不正确,并且应该是
{04980}
*
是一个量词,表示前一个字符的0或更多。