使用正则表达式将字符串解析为字符串数组

时间:2014-10-11 16:44:35

标签: javascript arrays regex string

我有这样的字符串:任何字符(除了\ n)与\ n组合,\ n可以在字符串中的任何位置重复0次或更多次

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

预期输出为:

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

我可以使用input.split(' \ n')将字符串变成数组,但在这种情况下,我将失去\ n,实际上我需要\ n和其他任何一个字符。

5 个答案:

答案 0 :(得分:0)

您可以使用

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

答案 1 :(得分:0)

我认为这更合适。

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

答案 2 :(得分:0)

(\\n)|(\w+)

试试这个。抓住捕获。参见演示。

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

答案 3 :(得分:0)

您可以使用多行锚点进行拆分。

input.split(/^|$/gm)

你会得到:

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

答案 4 :(得分:-1)

您可以尝试使用(?=\n)吗?因为这不会实际捕获\n字符