Javascript 正则表达式将单词和\n逐字匹配

Javascript 正则表达式将单词和\n逐字匹配,javascript,regex,Javascript,Regex,我有一根绳子 const str = "This is a test.\n\nAnother Sentence.\nHello!"; 我想要结果 // ['This', 'is', 'a', 'test.', '\n', '\n', 'Another', 'Sentence.', '\n', 'Hello!'] 我在做什么 const arr = str.match(/\w+/g); // ["This", "is", "a", "test", "Another", "Sentence",

我有一根绳子

const str = "This is a test.\n\nAnother Sentence.\nHello!";
我想要结果

// ['This', 'is', 'a', 'test.', '\n', '\n', 'Another', 'Sentence.', '\n', 'Hello!']
我在做什么

const arr = str.match(/\w+/g);
// ["This", "is", "a", "test", "Another", "Sentence", "Hello"]
我应该如何在结果中包含所有特殊字符,如(.)和(!)等以及“\n”?你能帮忙吗

您可以使用

/\S+|\n/g
看。它匹配1+非空白字符或换行符,匹配的次数与输入字符串中存在此类块的次数相同(由于
g
modifier)

JS演示:

var str=“这是一个测试。\n\n另一句话。\nHello!”;

console.log(str.match(/\S+\n/g))您可以尝试使用[\w\.\\n!]+,但您需要知道要包含的所有特殊字符。我应该如何在结果中包含所有特殊字符,如(.)和(!)等以及“\n”。。。如何使这些特殊字符也可以作为单独的结果处理?谢谢。@如果您想要单独的结果,请了解有关正则表达式捕获的更多信息groups@ths这不是OP所需要的,请参见预期结果:
['This','is','a','test','\n','\n','other','sencement','\n','Hello!']
。当然,
str.match(/\w+\w/g)
str.match(/\w+\w+/g)
会对其进行更多标记。您可以使用
?:
将表达式设为非捕获组。例如:
(?:\S+\n)
这将使其匹配,但不会捕获结果组,从而获得所需的结果。@ug\u不需要非捕获组<代码>/(?:a | b)/
=
/a | b/