我有这个正则表达式,它会对 google 这个词做一个积极的看法,我已经使用网站 regex101.com 测试了它的有效性,这告诉我它的工作原理:
(?<=google).*
我在JavaScript中使用它是这样的:
var regex = new RegExp('(?<=google).*');
someString = "google everything!";
console.log(someString.match(regex)[0]);
控制台日志应该返回everything!
,后面有空格,基本上所有字符都不包括 google 之后的新行。
但是,控制台显示以下错误,但我无法弄清楚它发生的原因:
未捕获的SyntaxError:无效的正则表达式:/(?&lt; = google).*/:无效的组
我也使用它而不需要像这样创建一个新的RegExp对象,但是我得到了同样的错误:
var someString = "google everything!";
console.log(someString.match(/(?<=google).*/)[0]);
任何人都可以告诉我这段代码有什么问题吗?
答案 0 :(得分:3)
您的正则表达式似乎不正确。我不确定你为什么<=
。其次,你正在寻找第二个指数,而不是第一个。
var regex = new RegExp('google(.*)'),
someString = "google everything!",
matches = someString.match(regex); // ['google everything', ' everything!']
console.log(matches[1]); // everything! (with space before it)
答案 1 :(得分:2)