2014-10-11 100 views
0

解析字符串字符串數組我有這樣的字符串:任何字符(除\ n)的與\ N個組合,\ n可以在字符串中的任何地方,並且重複0次或多次使用正則表達式

var input = "\nabc\n\n"; 

的預期成果是:

var output = ['\n', 'abc', '\n', '\n'] 

我可以使用input.split(「\ n」),使串入一個數組,但在這種情況下,我將失去\ n,其實我需要兩個\ n和任何其他角色。

+0

你運行哪種語言? – 2014-10-11 16:50:15

+0

javascript,謝謝! – 2014-10-12 07:20:56

回答

0

我認爲這將是更合適的。

> var s = "\nabc\n\n"; 
> s.match(/\n|[^\n]+/g) 
[ '\n', 
    'abc', 
    '\n', 
    '\n' ] 
+0

好極了!這是我期待的,謝謝! – 2014-10-12 07:19:39

0

您可以使用

console.log(input.match(/\n|\w+/g)); // ["↵", "abc", "↵", "↵"] 
+0

謝謝Amit,\ w不匹配*()&^%$#@!〜〜等特殊字符,但我需要這些字符 – 2014-10-12 07:13:39

-1

你可以嘗試使用(?=\n)?因爲這不會實際捕獲\n字符

0
(\\n)|(\w+) 

嘗試this.grab的captures.See演示。

http://regex101.com/r/vR4fY4/11

+0

謝謝!但\ w不匹配特殊字符,如*(); +?/ ,. <> | \%$#@!〜〜 – 2014-10-12 07:10:02

0

你可以用多錨分裂。

input.split(/^|$/gm) 

您將獲得:

[" 
", "abc", " 
", " 
"]