JavaScript的正则expression式看替代或图书馆的build议

我试图用下面的string将以下string匹配到2个组中,但显然它们在JavaScript中不受支持。

正则expression式: ((?<=:).*(?=;))|((?<=,).*$) 在线演示

 data:image/jpeg;base64,/abcd1234... --> group1: image/jpeg --> group2: /abcd1234... 

然后我试图使用XRegExp库希望它支持后面,但仍然没有成功。

 var XRegExp = require("xregexp"); var base64 = "data:image/jpeg;base64,/abcd1234..."; base64 = XRegExp.matchRecursive(base64, '((?<=:).*(?=;))|((?<=,).*$)', 'g'); 

但是我得到以下错误:

 node_modules/xregexp/xregexp-all.js:3376 new RegExp(generated.pattern, generated.flags), ^ SyntaxError: Invalid regular expression: /((?<=:).*(?=;))|((?<=,).*$)/: Invalid group at new RegExp (native) 

我的问题是有一种方法来使用JavaScript的原生正则expression式parsing器可能通过颠倒string上面运行正则expression式或者有JavaScript支持后面的库。 提前致谢

更加详细一些:

 (?=[^:;]*;)([^:;]+)|([^;,]+)$ 

现场演示

或者使用更多的JS:

 var re = /:([^:;]+);|,(.*)$/g; var str = "data:image/jpeg;base64,/abcd1234..."; var matches; while ((matches = re.exec(str)) !== null) { console.log(matches[1] ? matches[1] : matches[2]) }