2013-07-03 20 views
1

我想分裂使用正则表达式的String,就像在这个example, 但在我的情况下,我想,在新的一行中的话会超过X字符。分开后最大X字符的字符串,并保留完整的词

因此,下面的代码不会执行这个技巧,因为它发现每个至少有X个非换行符(而不是最大X)的实例。

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

我可以很容易地做到这一点使用其他方法,但我想用一个正则表达式

+0

你试过了:'(。{0,“+ x +”})'而不是? – assylias

+0

试过了,但它在某些情况下不起作用 – GarnerK

回答

3

试试这个它做的事:

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

或修剪的版本,

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

谢谢,作品像一个魅力! – GarnerK

相关问题