2012-11-29 95 views
0

我有一個字符串:正則表達式:在單詞保存線拆分文本breacks

"This is the\nstring with\nline breaks\n"

我需要得到:

[This, is, the\n, string, with\n, line, breaks\n]

當我使用.split(/ \ s {1,} /) - \ n換行符消失。如何保護它們?

的多個空格需要考慮

+0

請解釋一下你怎麼想' 「這\ n \ n \ n」'要拆分('[ 「這\ n \ n \ n」]'或'[ 「這\ N」]'或' [「\ n」,「\ n」,「\ n」]')以防我的回答不符合要求。 –

回答

3

也許match會給你你想要

"This is the\nstring with\nline breaks\n".match(/([^\s]+\n*|\n+)/g); 

// ["This", "is", "the\n", "string", "with\n", "line", "breaks\n"] 

[^\s]+意味着許多非空間儘可能(一個或多個)什麼,
\n*手段許多新線儘可能(0或更多),
|裝置OR\n+意味着許多新線儘可能(一個或多個)。

+0

這和'.split('')'完全一樣(或者我的控制檯說的)。看起來像過度複雜。 – Cerbrus

+0

號看索引2和3這種方法的'\ N','「成\ n」,「字符串」'之後分裂。 '.split(」「),'不,' 「的\ nstring」, 「與\ n線」' –

+1

拍哦,你說的對! +1 – Cerbrus

0

使用這個代替:

.split(/ +/); // (/ +/ to take multiple spaces into account.) 

因爲:

"This is the\nstring with\nline breaks\n".split(' '); 

返回:

["This", "is", "the 
string", "with 
line", "breaks 
"] 

你可能不會真正看到"\n"在這些字符串中,因爲它們在控制檯中呈現爲實際換行符。簡單地

0

分裂的空間

.split(" "); 
+0

多空間呢? – WHITECOLOR

1

通過使分裂他們將出現在結果陣列中的捕獲組。然後,您可以按摩是:

"This is the\nstring with\nline breaks\n".split(/(\s+)/); 

結果:

["This", " ", "is", " ", "the", "\n", "string", " ", "with", "\n", "line", " ", 
"breaks", "\n", ""] 

我會留下作爲一個練習,這個數組會產生你的請求的結果的操縱。

+0

這也有幫助。謝謝 – WHITECOLOR