我需要在 JavaScript 中使用正则表达式的lookbehind,所以发现 Simulating lookbehind in JavaScript (take 2)。另外,我发现作者 Steven Levithan 是开发XRegExp的人。
我 git 克隆了 XRegExp 3.0.0-pre,并进行了测试
一些使用 XRegExp 的后视逻辑 http://regex101.com/r/xD0xZ5
var XRegExp = require('xregexp');
console.log(XRegExp.replace('foobar', '(?<=foo)bar', 'test'));
它似乎不起作用;
$ node test
foobar
我想念什么?谢谢。
编辑:我的目标是
(?<=foo)[\s\S]+(?=bar)
(EDIT2链接错误并已修改)
回答:
var str = "fooanythingbar";
console.log(str);
console.log(str.replace(/(foo)(?:[\s\S]+(?=bar))/g, '$1test'));
//footestbar
感谢@Trevor Senior 谢谢!