我想用正则表达式解析URL,并找到一个与https://*.global
匹配的模式。
这是我在regex101上的URL测试字符串。
理想情况下,正则表达式将返回https://app8.global
,而不是覆盖其他https
字符串。
const URL = `https://temp/"https://app8.global"https://utility.localhost/`;
const regex = /https://(.+?).global(/|'|"|`)/gm;
const found = URL.match(regex);
console.log(found);
如何操作正则表达式,使其返回https://*.global
?
首先,您需要从起始部分排除斜杠,否则它将匹配上一个url中的内容:
const regex = /https://([^/]+?).global(/|'|"|`)/gm;
现在,你可以转换奇怪的4个字符或使用一个字符组:
const regex = /https://([^/]+?).global[/'"`]/gm;
现在你可以拿到匹配项并去掉最后一个字符:
const matches = URL.match(regex).map(v => v.slice(0, -1));
然后,matches
将评估为["https://app8.global"]
。
使用Group RegExp$1
const URL = `https://temp/"https://app8.global"https://utility.localhost/`;
const regex = /(https://([^/]+?).global[/'"`])/;
const found = URL.match(regex);
console.log(RegExp.$1);