2013-07-03 72 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

相關問題