Javascript 多重匹配RegExp中的字符始终在最后一个结束
大家好,我是个新手 如果我问这个问题有任何错误,希望能纠正我。 :) 如果我的测试字符串是“一个\n两个\n\n四个” 我在JavaScript中使用RegExpJavascript 多重匹配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\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"]