2016-12-01 96 views
0

我需要一個正則表達式,它可以在一定數量的字符之後添加\ n,如果最後一個字符是單詞,它應該將該單詞推到下一行。正則表達式來添加 n在一定數量的字符和空格之後

我有下面的正則表達式,它執行添加\ n的工作,但不是將最後一個單詞推到下一行,而是保留該單詞。

word.replace(/(.{12}) /g, "$&\n") 

如果有人能幫助我或告訴我,如果可能或不這樣做,我將不勝感激。

例如:

word = "love stackoverflow" 
after regex it should be love \n stackoverflow 
NOT love stackoverflow\n 
+0

是什麼狀況?空的空間應該用\ n替換,或者?你說'在字符數字後面' - 是否意味着字符串長於X(在你的正則表達式中是12)字符應該放在兩行中? – sinisake

+0

如果我的字符串長於12個字符,請在12個字符後面添加\ n。但如果它是一個詞,比不打破這個詞,而是在該詞之前騰出空間並添加\ n。 所以\ n應該只在空格後加上,而不是在單詞之間。 –

+0

我的當前腳本將\ n添加到空格中,但在單詞之後,而不是單詞之前的空格。 –

回答

1

我不知道,如果這是你在尋找什麼,但它可能給一些想法:

.{1,12}(?=[\W]) 

看起來儘可能多的字符,因爲它可以找到(在1和12之間),直到找到一個字母后跟一個非字母(如空格,行結束符,標點符號等)。

https://regex101.com/r/UceAEC/1

0

這是如何在蟒蛇實現它。將此邏輯移植到JavaScript。
我採取了更有意義的12個字符的長度。如果你喜歡正則表達式,你可以用8代替。

import re 

a = "The a quick brown fox jumps over the lazy dog" 
print [b+'\n' for b in re.findall("(.{0,12})(?: |$)",a) if b] 

輸出:在Regex101爲您的字符串

['The a quick\n', 'brown fox\n', 'jumps over\n', 'the lazy dog\n'] 

演示,您已經提到:
https://regex101.com/r/lmdjwT/1