Javascript 多重匹配RegExp中的字符始终在最后一个结束

Javascript 多重匹配RegExp中的字符始终在最后一个结束,javascript,regex,Javascript,Regex,大家好,我是个新手 如果我问这个问题有任何错误,希望能纠正我。 :) 如果我的测试字符串是“一个\n两个\n\n四个” 我在JavaScript中使用RegExp/(.)*\n/ 将匹配“一\n两\n\n”而不是“一\n”、“两\n”和“\n” 我想得到的结果是一、二、四 非常感谢@Dalorzo的回答 'One\nTwo\n\n Four'.split(/\n/g)//输出[“一”、“二”、“四”] 让你的贪婪搜索成为非贪婪搜索。参见演示 为了达到同样的目标,分裂或许更好?借 使用正则表

大家好,我是个新手

如果我问这个问题有任何错误,希望能纠正我。 :)

如果我的测试字符串是“一个\n两个\n\n四个”

我在JavaScript中使用RegExp
/(.)*\n/

将匹配
“一\n两\n\n”
而不是
“一\n”、“两\n”和“\n”

我想得到的结果是一、二、四


非常感谢@Dalorzo的回答

'One\nTwo\n\n Four'.split(/\n/g)//输出[“一”、“二”、“四”]

让你的贪婪搜索成为非贪婪搜索。参见演示


为了达到同样的目标,分裂或许更好?借

使用正则表达式

'One\nTwo\n\nFour'.split(/\n/) //outputs ["One", "Two", "", "Four"]
或不带正则表达式,如:

'One\nTwo\n\nFour'.split('\n') //outputs ["One", "Two", "", "Four"]

分裂太棒了!非常感谢!这种方法之所以有效,是因为您将
*
放在组内,并使用
g
标志迭代组1的所有匹配项。无论您使用
(.*)
还是
(.*)
,它都必须在下次出现
(?:\n |$)
之前消耗所有内容;贪婪是无关紧要的。
'One\nTwo\n\nFour'.split(/\n/) //outputs ["One", "Two", "", "Four"]
'One\nTwo\n\nFour'.split('\n') //outputs ["One", "Two", "", "Four"]