【发布时间】:2023-04-07 23:21:01
【问题描述】:
我做了这个正则表达式:/.net.(\w*)/
我试图在这样的字符串中捕获qa:
https://xxxxxx.cloudfront.net/qa/club/Slide1.PNG
我正在做 .replace 就像这样 location.replace(/.net.(\w*)/,data.newName));
但是当我在 Javascript 中运行代码时,它不会捕获qa,而是捕获.net
根据这个为 ruby 制作的在线正则表达式工具,它会按预期捕获qa
http://rubular.com/r/ItrG7BRNRn
Javascript 正则表达式和 Ruby 正则表达式有什么区别,如何让我的正则表达式在 javascript 中按预期工作?
编辑:
我将代码更改为:
var str = `https://xxxxxxxxxx.cloudfront.net/qa/club`;
var re = /\.net\/([^\/]*)\//;
console.log(data2.files[i].location.replace(re,'$1'+ "test"));
而不是
https://dm7svtk8jb00c.cloudfront.net/test/club
我明白了:
https://dm7svtk8jb00c.cloudfrontqatestclub
如果我删除$1,我会得到https://dm7svtk8jb00c.cloudfronttestclub,它更接近,但我想保留斜线。
【问题讨论】:
-
您希望结果在 Ruby 中运行,还是在 JavaScript 中运行?
location可以是任何一种语言的变量。 -
@theTinMan Javascript,对不起
-
顺便说一句,如果你想在 JavaScript 中测试正则表达式,我推荐 regexpal.com 或者只使用浏览器的控制台。
标签: javascript ruby regex