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