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