我有这样的字符串:任何字符(除了\ n)与\ n组合,\ n可以在字符串中的任何位置重复0次或更多次
var input = "\nabc\n\n";
预期输出为:
var output = ['\n', 'abc', '\n', '\n']
我可以使用input.split(' \ n')将字符串变成数组,但在这种情况下,我将失去\ n,实际上我需要\ n和其他任何一个字符。
答案 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)
答案 3 :(得分:0)
您可以使用多行锚点进行拆分。
input.split(/^|$/gm)
你会得到:
["
", "abc", "
", "
"]
答案 4 :(得分:-1)
您可以尝试使用(?=\n)
吗?因为这不会实际捕获\n
字符