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/
。