1. x(?=y):先行断言,匹配x并且x后面有个y,y不作为匹配结果的一部分
2. (?<=y)x:后行断言,匹配x并且x前面有个y,y不作为匹配结果的一部分
const str = 'aa bb cc'
/**
* 效果:实现仅按照一个空格对字符串进行分割
* 释义:匹配这个空格并且这个空格前面从首位开始存在1~多个非空格字符
*
*/
const res1 = str.split(/(?<=^[^ ]+) /) // ['aa', 'bb cc']
/**
* 效果:实现仅按照最后一个空格对字符串进行分割
* 释义:匹配这个空格并且这个空格后面存在1~多个非空格字符直至末尾
*
*/
const res2 = str.split(/ (?=[^ ]+$)/) // ['aa bb', 'cc']