Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 按空格分割字符串,但不按换行符中的空格分割,并保留换行符_Javascript_Regex - Fatal编程技术网

Javascript 按空格分割字符串,但不按换行符中的空格分割,并保留换行符

Javascript 按空格分割字符串,但不按换行符中的空格分割,并保留换行符,javascript,regex,Javascript,Regex,我有这样一个字符串: "word1 word2 \ngroup of words\n" [ "word1", "word2", "\ngroup of words\n" ] 我需要将它按空格分割,2\n之间的空格除外,并保留\n字符。因此,结果将是这样一个数组: "word1 word2 \ngroup of words\n" [ "word1", "

我有这样一个字符串:

"word1 word2 \ngroup of words\n"
[
 "word1",
 "word2",
 "\ngroup of words\n"
]
我需要将它按空格分割,2
\n
之间的空格除外,并保留
\n
字符。因此,结果将是这样一个数组:

"word1 word2 \ngroup of words\n"
[
 "word1",
 "word2",
 "\ngroup of words\n"
]
我发现使用
而不是
\n
可以获得相同的结果,但是我不可能用任何其他字符替换它

我目前正在使用下面的代码,但它没有保留
\n

input.split('\n').flatMap((s,i)=>i%2?`\n${s.trim()}\n`:s.trim().split(' ')).filter(v=>v)
注:

如果输入字符串在
\n
之前有单词,那么它前面总会有一个空格,即字符串可以包含
word1\n组1\n
,但不能包含
word1\n组1\n

一个字符串还可以包含多个组,如您可以使用的
word1\n组1\n word2\n组2\n

const text=“word1 word2\n一组单词\n”;
console.log(text.match(/\n.*\n|\S+/g))