我有一个像这样的字符串
__data__transition_fadeIn_phase1____transition_fadeOut_phase1__
我想捕获fadeIn_phase1和fadeOut_phase1
我有很多尝试,包括/transition_(\w+)__(?:$|(?:__trans\w*))/g
,但它只捕获fadeIn_phase1____transition_fadeOut_phase1__
有没有办法捕获两者?
我意识到我必须使用while循环...
while (matches = pattern.exec(Object.keys(selection).join(""))) {
keys.push(matches[1])
}
答案 0 :(得分:1)
您可以在此处使用non-greedy匹配。
/transition_(\w+?)__/g
示例:
var str = '__data__transition_fadeIn_phase1____transition_fadeOut_phase1__'
var re = /transition_(\w+?)__/g,
keys = [];
while (m = re.exec(str)) {
keys.push(m[1]);
}
console.log(keys) //=> [ 'fadeIn_phase1', 'fadeOut_phase1' ]