2014-10-11 79 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", " 
", " 
"]