大家好,我是stackoverflow新手。
如果我对提出这个问题有任何不妥之处,希望能够纠正我。 :)
如果我的测试字符串是'One\nTwo\n\nFour'
,
我在JavaScript中使用RegExp /(.)*\n/
,
符合'One\nTwo\n\n'
而非'One\n', 'Two\n' and '\n'
符合我的期望。
我想得到的结果是'One', 'Two', '' and 'Four'
。
非常感谢@ Dalorzo的回答。
'One\nTwo\n\nFour'.split(/\n/g) //outputs ["One", "Two", "", "Four"]
答案 0 :(得分:4)
也许更好的可能是实现同一目标的分裂?通过
使用正则表达式:
'One\nTwo\n\nFour'.split(/\n/) //outputs ["One", "Two", "", "Four"]
或没有 正则表达式,如:
'One\nTwo\n\nFour'.split('\n') //outputs ["One", "Two", "", "Four"]
答案 1 :(得分:3)
(.*?)(?:\n|$)
让你贪婪的搜索非贪婪。参见演示。
https://regex101.com/r/vD5iH9/30
var re = /(.*?)(?:\n|$)/g;
var str = 'One\nTwo\n\nFour';
var m;
while ((m = re.exec(str)) != null) {
if (m.index === re.lastIndex) {
re.lastIndex++;
}
// View your result using the m-variable.
// eg m[0] etc.
}