如何将段落重新包装到某个行长度?

时间:2010-02-21 12:45:29

标签: regex perl split

我有一个很大的段落,我需要分成几行,这样每行不得超过100个字符,并且不得破坏任何单词。我该怎么做呢?我想正则表达式是最好的方法,但我不确定如何。

2 个答案:

答案 0 :(得分:10)

使用Text::Wrap

  

Text::Wrap::wrap()是一个非常简单的段落格式化程序。它通过在字边界处断开线来一次格式化一个段落。第一行($initial_tab)和所有后续行($subsequent_tab)的缩进是独立控制的。

答案 1 :(得分:0)

虽然你应该使用库函数,但正如KennyTM建议的那样,一个简单的正则表达式可以解决这个问题:

.{1,100}\b

这将占用100个字符或更少,并且不会破坏单词。但它会打破其他角色,例如,句子末尾的句点可能会从最后一个单词(last word<\n>. new line)中分离出来。
如果这是一个问题,您也可以尝试:

.{1,99}(\s|.$)

确保每场比赛中的最后一个角色是一个空白区域。

所有这些假设您将空格计为字符,并且可能在文本中没有换行符(单个段落),并且没有超过100个字符的单词。