在最多X个字符后拆分字符串并保留整个单词

时间:2013-07-03 10:08:27

标签: java regex split

我想使用正则表达式拆分一个字符串,就像在这个example中一样, 但在我的情况下,我希望新行中的每个单词超过X个字符。

所以下面的代码没有做到这一点,因为它找到了至少X个非换行符(而不是max X)的每个实例。

s = s.replaceAll("(.{" + x + ",}?)\\s+", "$1\n");

我可以使用其他方法轻松完成此操作,但我想使用REGEX

1 个答案:

答案 0 :(得分:3)

试试这个:

s = s.replaceAll("(.{0,"+ x+"})\\b", "$1\n");

或修剪版本,

s = s.replaceAll("(?:\\s*)(.{1,"+ x +"})(?:\\s+|\\s*$)", "$1\n")